6-1 人 :使用一個字典來存儲一個熟人的信息,包括名、姓、年齡和居住的城市。該字典應包含鍵first_name 、last_name 、age 和city 。將存儲在該字典中的每項信息都打印出來。
information = {"first_name":"A", "last_name":"B", "age":20, "city":"China"}
print(information)
6-2 喜歡的數字 :使用一個字典來存儲一些人喜歡的數字。請想出5個人的名字,並將這些名字用作字典中的鍵;想出每個人喜歡的一個數字,並將這些數字作為值存儲在字典中。打印每個人的名字和喜歡的數字。為讓這個程序更有趣,通過詢問朋友確保數據是真實的。
favorite_numbers = {'A':1, 'B':2, 'C':3, 'D':4, 'E':5}
print(favorite_numbers)
print("A喜歡的數字是" + str(favorite_numbers['A']) + ".")
6-3 詞匯表 :Python字典可用於模擬現實生活中的字典,但為避免混淆,我們將后者稱為詞匯表。
- 想出你在前面學過的5個編程詞匯,將它們用作詞匯表中的鍵,並將它們的含義作為值存儲在詞匯表中。
- 以整潔的方式打印每個詞匯及其含義。為此,你可以先打印詞匯,在它后面加上一個冒號,再打印詞匯的含義;也可在一行打印詞匯,再使用換行符(\n )插入一個空行,然后在下一行以縮進的方式打印詞匯的含義。
func = {"input":"提示用戶輸入內容", "print":"打印輸出內容", "del":"刪除指定內容", "def":"可以創建函數", "range":"創建指定的數列"}
for i in func:
print(i + "的含義是: " + str(func[i]) + "\n")
6-4 詞匯表2 :既然你知道了如何遍歷字典,現在請整理你為完成練習6-3而編寫的代碼,將其中的一系列print 語句替換為一個遍歷字典中的鍵和值的循環。確定該循環正確無誤后,再在詞匯表中添加5個Python術語。當你再次運行這個程序時,這些新術語及其含義將自動包含在輸出中。
func = {"input":"提示用戶輸入內容", "print":"打印輸出內容", "del":"刪除指定內容", "def":"可以創建函數", "range":"創建指定的數列"}
for key,value in func.items():
print(key + " 鍵")
print(value + " 值")
func["key"] = "字典的鍵"
func["value"] = "字典的值"
func["append"] = "添加元素到列表末尾"
func["pop"] = "刪除元素並提取使用"
func["copy"] = "復制變量"
for key,value in func.items():
print(key + " 鍵")
print(value + " 值")
6-5 河流 :創建一個字典,在其中存儲三條大河流及其流經的國家。其中一個鍵—值對可能是'nile': 'egypt' 。
- 使用循環為每條河流打印一條消息,如“The Nile runs through Egypt.”。
- 使用循環將該字典中每條河流的名字都打印出來。
- 使用循環將該字典包含的每個國家的名字都打印出來。
rivers = {'nile': 'egypt',
'huanghe':'china',
'changjiang':'zhongguo'}
for key, value in rivers.items():
print("The " + key + " runs through " + value + ".")
#河流循環
for river in rivers.keys():
print(river)
#國家循環
for country in rivers.values():
print(country)
6-6 調查 :在6.3.1節編寫的程序favorite_languages.py中執行以下操作。
- 創建一個應該會接受調查的人員名單,其中有些人已包含在字典中,而其他人未包含在字典中。
- 遍歷這個人員名單,對於已參與調查的人,打印一條消息表示感謝。對於還未參與調查的人,打印一條消息邀請他參與調查。
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
'李':'四',
}
new_person = ['趙','錢','孫','李']
for k in favorite_languages:
if k in new_person:
print("非常感謝" + k + "參加問卷調查.\n")
else:
print("請" + k + "參加問卷調查.\n")
6-7 人 :在為完成練習6-1而編寫的程序中,再創建兩個表示人的字典,然后將這三個字典都存儲在一個名為people 的列表中。遍歷這個列表,將其中每個人的所有信息都打印出來。
information_1 = {"first_name":"A", "lost_name":"B", "age":20, "city":"china"}
information_2= {"first_name":"C", "lost_name":"D", "age":20, "city":"china"}
information_3= {"first_name":"E", "lost_name":"F", "age":20, "city":"china"}
people = [information_1, information_2, information_3]
for i in people:
print(i)
6-8 寵物 :創建多個字典,對於每個字典,都使用一個寵物的名稱來給它命名;在每個字典中,包含寵物的類型及其主人的名字。將這些字典存儲在一個名為pets的列表中,再遍歷該列表,並將寵物的所有信息都打印出來。
pets = {
"A":{
"name":"aa",
"per_name":"dog",
"pet_age":"1",
},
"B":{
"name":"bb",
"per_name":"cat",
"pet_age":"2",
},
}
for k,v in pets.items():
print(k)
print(v)
6-9 喜歡的地方 :創建一個名為favorite_places 的字典。在這個字典中,將三個人的名字用作鍵;對於其中的每個人,都存儲他喜歡的1~3個地方。為讓這個練習更有趣些,可讓一些朋友指出他們喜歡的幾個地方。遍歷這個字典,並將其中每個人的名字及其喜歡的地方打印出來。
favorite_places = {
'甲':{'一'},
'乙':{'二','三','四'},
'丙':{'五','六','七'}
}
for ks, vs in favorite_places.items():
if len(vs) == 1:
for v in vs:
print(ks + "喜歡的數字只有一個 " + v)
else:
print("\n" + ks + "喜歡的數字有:")
for v in vs:
if v != 1:
print("\t" + v)
6-10 喜歡的數字 :修改為完成練習6-2而編寫的程序,讓每個人都可以有多個喜歡的數字,然后將每個人的名字及其喜歡的數字打印出來。
favorite_number = {
'A':{'1','2','3'},
'B':{'4','5','6'},
'C':{'7','8','9'}
}
for ks, vs in favorite_number.items():
print(ks.title() + "喜歡的數字是")
for v in vs:
print(':' + v)
6-11 城市 :創建一個名為cities 的字典,其中將三個城市名用作鍵;對於每座城市,都創建一個字典,並在其中包含該城市所屬的國家、人口約數以及一個有關該城市的事實。在表示每座城市的字典中,應包含country 、population 和fact 等鍵。將每座城市的名字以及有關它們的信息都打印出來。
cities = {
'A':{'country':'aa', 'population ':'bb', 'fact':'cc'},
'B':{'country':'aa', 'population ':'bb', 'fact':'cc'},
'C':{'country':'aa', 'population ':'bb', 'fact':'cc'},
}
for k, v in cities.items():
print(k, v)
for k, v in cities.items():
print(k)
print(v)
6-12 擴展 :本章的示例足夠復雜,可以以很多方式進行擴展了。請對本章的一個示例進行擴展:添加鍵和值、調整程序要解決的問題或改進輸出的格式。