6-1 人 :使用一個字典來儲存一個熟人的資訊,包括名、姓、年齡和居住的城市。該字典應包含鍵first_name 、last_name 、age 和city 。將儲存在該字典中的每項資訊都列印出來。
friend = {
'first_name':'Liu',
'last_name':'Join',
'city':'Wuhan',
'age':33
}
print(friend)
6-2 喜歡的數字 :使用一個字典來儲存一些人喜歡的數字。請想出5個人的名字,並將這些名字用作字典中的鍵;想出每個人喜歡的一個數字,並將這些數字作為值儲存在字典中。列印每個人的名字和喜歡的數字。為讓這個程式更有趣,透過詢問朋友確保資料是真實的。
lucky_numbers = {
'jone':18,
'xinxin':20,
'quanquan':88,
'wenwen':66,
'huahua':188,
}
print(lucky_numbers)
6-3 詞彙表 :Python字典可用於模擬現實生活中的字典,但為避免混淆,我們將後者稱為詞彙表。想出你在前面學過的5個程式設計詞彙,將它們用作詞彙表中的鍵,並將它們的含義作為值儲存在詞彙表中。以整潔的方式列印每個詞彙及其含義。為此,你可以先列印詞彙,在它後面加上一個冒號,再列印詞彙的含義;也可在一行列印詞彙,再使用換行符(\n )插入一個空行,然後在下一行以縮排的方式列印詞彙的含義。
functions = {
'print':'列印輸出內容',
'del':'刪除功能',
'for':'迴圈遍歷',
'if':'條件選擇',
'append':'可用於新增列表元素',
}
print('print:'+functions['print'])
print('del:'+functions['del'])
print('for:'+functions['for'])
print('if:'+functions['if'])
print('append:'+functions['append'])
6-4 詞彙表2 :既然你知道了如何遍歷字典,現在請整理你為完成練習6-3而編寫的程式碼,將其中的一系列print 語句替換為一個遍歷字典中的鍵和值的迴圈。確定該迴圈正確無誤後,再在詞彙表中新增5個Python術語。當你再次執行這個程式時,這些新術語及其含義將自動包含在輸出中。
functions = {
'print':'列印輸出內容',
'del':'刪除功能',
'for':'迴圈遍歷',
'if':'條件選擇',
'append':'可用於新增列表元素',
}
for key,values in functions.items():
print(key.title()+':'+values)
6-5 河流 :建立一個字典,在其中儲存三條大河流及其流經的國家。其中一個鍵—值對可能是'nile': 'egypt' 。
- 使用迴圈為每條河流列印一條訊息,如“The Nile runs through Egypt.”。
- 使用迴圈將該字典中每條河流的名字都列印出來。
- 使用迴圈將該字典包含的每個國家的名字都列印出來。
rivers = {
'黃河':'中國',
'恆河':'印度',
'湄公河':'越南',
}
for country in rivers.values():
print('國家啊:'+country)
for river in rivers.keys():
print('河流啊:' + river)
for river,country in rivers.items():
print(river+'經過'+country)
6-6 調查 :在6.3.1節編寫的程式favorite_languages.py中執行以下操作。建立一個應該會接受調查的人員名單,其中有些人已包含在字典中,而其他人未包含在字典中。遍歷這個人員名單,對於已參與調查的人,列印一條訊息表示感謝。對於還未參與調查的人,列印一條訊息邀請他參與調查。
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
# 回顧一下元組
respondents = ('jen','sarah','wayne','jhon')
for resp in respondents:
if resp in favorite_languages:
print('感謝'+resp+'參與調查')
else:
print('請'+resp+'參與調查')
6-7 人 :在為完成練習6-1而編寫的程式中,再建立兩個表示人的字典,然後將這三個字典都儲存在一個名為people 的列表中。遍歷這個列表,將其中每個人的所有資訊都列印出來。
friend1 = {
'first_name':'Liu',
'last_name':'Join',
'city':'Wuhan',
'age':33
}
friend2= {
'first_name':'Zhang',
'last_name':'Tian',
'city':'Wuhan',
'age':28
}
friend3 = {
'first_name':'Yang',
'last_name':'Jian',
'city':'Changsha',
'age':26
}
friend4 = {
'first_name':'Li',
'last_name':'Yu',
'city':'Chongqing',
'age':26
}
friends = [friend1,friend2,friend3,friend4]
for friend in friends:
print(friend)
6-8 寵物 :建立多個字典,對於每個字典,都使用一個寵物的名稱來給它命名;在每個字典中,包含寵物的型別及其主人的名字。將這些字典儲存在一個名為pets的列表中,再遍歷該列表,並將寵物的所有資訊都列印出來。
pets = []
peta = {
'type':'dog',
'owner':'Zhang',
}
petb = {
'type':'cat',
'owner':'Li',
}
pets.append(peta)
pets.append(petb)
for item in pets:
for key,value in item.items():
print('屬性:'+key+'\t值:'+value)
6-9 喜歡的地方 :建立一個名為favorite_places 的字典。在這個字典中,將三個人的名字用作鍵;對於其中的每個人,都儲存他喜歡的1~3個地方。為讓這個練習更有趣些,可讓一些朋友指出他們喜歡的幾個地方。遍歷這個字典,並將其中每個人的名字及其喜歡的地方列印出來。
favorite_places = {
'Sunqian':['Wuhan','Changsha','Chongqing'],
'Zhaowu':['Xian','Guangzhou','Fujian'],
'Wangba':['Chengdu','Hefei','Ningbo'],
}
for preson,areas in favorite_places.items():
for area in areas:
print(preson+'喜歡'+area+'這個城市')
6-10 喜歡的數字 :修改為完成練習6-2而編寫的程式,讓每個人都可以有多個喜歡的數字,然後將每個人的名字及其喜歡的數字列印出來。
lucky_numbers = {
'jone':[18,25,30,88],
'xinxin':[20,68,145,58],
'quanquan':[88,123,42,63],
'wenwen':[66,581,58,69,3],
'huahua':[188,8,18,29,27],
}
for person,numbers in lucky_numbers.items():
print(person+'喜歡的數字有:')
for number in numbers:
print(number)
6-11 城市 :建立一個名為cities 的字典,其中將三個城市名用作鍵;對於每座城市,都建立一個字典,並在其中包含該城市所屬的國家、人口約數以及一個有關該城市的事實。在表示每座城市的字典中,應包含country 、population 和fact 等鍵。將每座城市的名字以及有關它們的資訊都列印出來。
cities = {
'Wuhan':{
'country':'China',
'population':15686450,
'fact':'beautiful',
},
'Changsha':{
'country':'China',
'population':1043488,
'fact':'interesting',
},
'Chongqing':{
'country':'China',
'population':1043488,
'fact':'passionate',
},
}
for city,attribute in cities.items():
print(city+'這個城市擁有如下資訊:')
for ctype,cdata in attribute.items():
print(ctype+':'+str(cdata))
print('\n')
6-12 擴充套件 :本章的示例足夠複雜,可以以很多方式進行擴充套件了。請對本章的一個示例進行擴充套件:新增鍵和值、調整程式要解決的問題或改進輸出的格式。
users = {
'aeinstein': {
'first': 'albert',
'last': 'einstein',
'location': 'princeton',
},
'mcurie': {
'first': 'marie',
'last': 'curie',
'location': 'paris',
},
}
# 新增鍵值
users['Wayne']={
'first': 'Cao',
'last': 'Zhiwen',
'location': 'Changsha',
}
# 刪除鍵值
del users['mcurie']
# 修改鍵值
users['aeinstein']={
'first': 'Albert',
'last': 'Einstein',
'location': 'Princeton',
}
# 遍歷鍵值
for user,attribute in users.items():
print(user+'的屬性如下:')
for utype,uatt in attribute.items():
print(utype+':'+uatt)
print('\n')