天天看點

【Python程式設計:從入門到實踐】第六章:字典

6-1 人 :使用一個字典來存儲一個熟人的資訊,包括名、姓、年齡和居住的城市。該字典應包含鍵first_name 、last_name 、age 和city 。将存儲在該字典中 的每項資訊都列印出來。

person = {
	'first_name':'HandSome',
	'last_name':'Girl',
	'age':21,
	'city':'Zhuhai',
}
print(person)
           

結果:

{'first_name': 'HandSome', 'last_name': 'Girl', 'age': 21, 'city': 'Zhuhai'}
           

6-2 喜歡的數字 :使用一個字典來存儲一些人喜歡的數字。請想出5個人的名字,并将這些名字用作字典中的鍵;想出每個人喜歡的一個數字,并将這些數字作為值存儲在字典中。列印每個人的名字和喜歡的數字。為讓這個程式更有趣,通過詢問朋友確定資料是真實的。

perfer_num= {
	'Nancy':1,
	'Lucky':2,
	'Handsome_Girl':3,
	'Mary':4,
	'Tony':5,
}
print(perfer_num)
           

結果:

{'Handsome_Girl': 3, 'Nancy': 1, 'Tony': 5, 'Lucky': 2, 'Mary': 4}
           

6-3 詞彙表 :Python字典可用于模拟現實生活中的字典,但為避免混淆,我們将後者稱為詞彙表。

 想出你在前面學過的5個程式設計詞彙,将它們用作詞彙表中的鍵,并将它們的含義作為值存儲在詞彙表中。

 以整潔的方式列印每個詞彙及其含義。為此,你可以先列印詞彙,在它後面加上一個冒号,再列印詞彙的含義;也可在一行列印詞彙,再使用換行符(\n )插 入一個空行,然後在下一行以縮進的方式列印詞彙的含義。

vocabulary ={
	'P':'Python',
	'J':'Java',
	'C':'C',
	'V':'Visual Basic',
}
for key,value in vocabulary.items():
	print(key,':',value)
           

結果:

P : Python
J : Java
V : Visual Basic
C : C
           

6-4 詞彙表2 :既然你知道了如何周遊字典,現在請整理你為完成練習6-3而編寫的代碼,将其中的一系列print 語句替換為一個周遊字典中的鍵和值的循環。确定該 循環正确無誤後,再在詞彙表中添加5個Python術語。當你再次運作這個程式時,這些新術語及其含義将自動包含在輸出中。 

vocabulary ={
	'P':'Python',
	'J':'Java',
	'C':'C',
	'V':'Visual Basic',
	'R':'Ruby',
	'P':'111'
}
for key,value in vocabulary.items():
	print(key,':',value)
           

結果:

V : Visual Basic
C : C
P : 111
J : Java
R : Ruby
           

6-5 河流 :建立一個字典,在其中存儲三條大河流及其流經的國家。其中一個鍵—值對可能是'nile': 'egypt' 。

 使用循環為每條河流列印一條消息,如“The Nile runs through Egypt.”。

 使用循環将該字典中每條河流的名字都列印出來。

 使用循環将該字典包含的每個國家的名字都列印出來。

river = {
	'nile':'egypt',
	'yellow river':'lanchow',
	'Mississippi River':'north America'
}
for key,value in river.items():
	print("The %s runs through %s"%(key.title(),value.title()))
           

結果:

The Nile runs through Egypt
The Mississippi River runs through North America
The Yellow River runs through Lanchow
           

6-6 調查 :在6.3.1節編寫的程式favorite_languages.py中執行以下操作。

建立一個應該會接受調查的人員名單,其中有些人已包含在字典中,而其他人未包含在字典中。

周遊這個人員名單,對于已參與調查的人,列印一條消息表示感謝。對于還未參與調查的人,列印一條消息邀請他參與調查。

favorite_languages = {
	'jen':'python',
	'sarah':'c',
	'edward':'ruby',
	'phill':'python',
}
interviewer = ['jen','sarah','edward','phill','alice','bob']
for user in interviewer:
	if user in favorite_languages.items():
		print('%s thank you for your intend'%user)
	else:
		print('welcome to here %s'%user)
           

結果:

welcome to here jen
welcome to here sarah
welcome to here edward
welcome to here phill
welcome to here alice
welcome to here bob
           

6-7 人 :在為完成練習6-1而編寫的程式中,再建立兩個表示人的字典,然後将這三個字典都存儲在一個名為people 的清單中。周遊這個清單,将其中每個人的所有 資訊都列印出來。

people = {
	'person1' : {
	'first_name':'HandSome',
	'last_name':'Girl',
	'age':21,
	'city':'Zhuhai',
	},
	'person2':{
	'first_name':'albert',
	'last_name':'einstein',
	'age':34,
	'city':'princeton'
	},
	'person3':{
	'first_name':'marie',
	'last_name':'curie',
	'age':36,
	'city':'paris'
	},
}
for key,value in people.items():
	print(key+":")
	for key1,value2 in value.items():
		print("\t %s:%s"%(key1,value))
           

結果:

person3:
	 first_name:{'first_name': 'marie', 'last_name': 'curie', 'age': 36, 'city': 'paris'}
	 last_name:{'first_name': 'marie', 'last_name': 'curie', 'age': 36, 'city': 'paris'}
	 age:{'first_name': 'marie', 'last_name': 'curie', 'age': 36, 'city': 'paris'}
	 city:{'first_name': 'marie', 'last_name': 'curie', 'age': 36, 'city': 'paris'}
person1:
	 first_name:{'first_name': 'HandSome', 'last_name': 'Girl', 'age': 21, 'city': 'Zhuhai'}
	 last_name:{'first_name': 'HandSome', 'last_name': 'Girl', 'age': 21, 'city': 'Zhuhai'}
	 age:{'first_name': 'HandSome', 'last_name': 'Girl', 'age': 21, 'city': 'Zhuhai'}
	 city:{'first_name': 'HandSome', 'last_name': 'Girl', 'age': 21, 'city': 'Zhuhai'}
person2:
	 first_name:{'first_name': 'albert', 'last_name': 'einstein', 'age': 34, 'city': 'princeton'}
	 last_name:{'first_name': 'albert', 'last_name': 'einstein', 'age': 34, 'city': 'princeton'}
	 age:{'first_name': 'albert', 'last_name': 'einstein', 'age': 34, 'city': 'princeton'}
	 city:{'first_name': 'albert', 'last_name': 'einstein', 'age': 34, 'city': 'princeton'}
           

6-8 寵物 :建立多個字典,對于每個字典,都使用一個寵物的名稱來給它命名;在每個字典中,包含寵物的類型及其主人的名字。将這些字典存儲在一個名為pets 的清單中,再周遊該清單,并将寵物的所有資訊都列印出來。

cat = {'name':'kitty','owner':'lucy'}
dog = {'name':'Da Huang','owner':'nancy'}
rabbit = {'name':'little white','owner':'mary'}
pets = [cat,dog,rabbit]
for pet in pets:
	for key ,value in pet.items():
		print('%s:%s'%(key,value.title()))
           

結果:

name:Kitty
owner:Lucy
name:Da Huang
owner:Nancy
name:Little White
owner:Mary
           

6-9 喜歡的地方 :建立一個名為favorite_places 的字典。在這個字典中,将三個人的名字用作鍵;對于其中的每個人,都存儲他喜歡的1~3個地方。為讓這個練 習更有趣些,可讓一些朋友指出他們喜歡的幾個地方。周遊這個字典,并将其中每個人的名字及其喜歡的地方列印出來。

favorite_palces = {
	'alice':['shanghai','guangzhou','shenzhen'],
	'nancy':['zhuhai','xiamen','beijing'],
	'bob':['ningxia','yunnan']
}
for key,value in favorite_palces.items():
	print(key+":")
	if len(value) > 0:
		for place in value:
			print("\t",place)
           

結果:

alice:
	 shanghai
	 guangzhou
	 shenzhen
nancy:
	 zhuhai
	 xiamen
	 beijing
bob:
	 ningxia
	 yunnan
           

6-10 喜歡的數字 :修改為完成練習6-2而編寫的程式,讓每個人都可以有多個喜歡的數字,然後将每個人的名字及其喜歡的數字列印出來。 

perfer_num= {
	'Nancy':[1,2,3],
	'Lucky':[2,3,4],
	'Handsome_Girl':[3,4,5],
	'Mary':[4,5,6],
	'Tony':[5,6,7],
}
for key,value in perfer_num.items():
	print(key+":")
	if len(value) > 0:
		for num in value:
			print("\t",num)
           

結果:

Handsome_Girl:
	 3
	 4
	 5
Lucky:
	 2
	 3
	 4
Nancy:
	 1
	 2
	 3
Tony:
	 5
	 6
	 7
Mary:
	 4
	 5
	 6
           

6-11 城市 :建立一個名為cities 的字典,其中将三個城市名用作鍵;對于每座城市,都建立一個字典,并在其中包含該城市所屬的國家、人口約數以及一個有關該 城市的事實。在表示每座城市的字典中,應包含country 、population 和fact 等鍵。将每座城市的名字以及有關它們的資訊都列印出來。

cities = {
	'A':{
	'country':'china',
	'population':32100,
	'fact':'A'
	},
	'B':{
	'country':'england',
	'population':36464,
	'fact':'B'
	},
	'C':{
	'country':'america',
	'population':465487,
	'fact':'C'
	},
}
for key,value in cities.items():
	print(key,":")
	for key1,value1 in value.items():
		print("\t",key1,":",value1)
           

結果:

B :
	 population : 36464
	 fact : B
	 country : england
A :
	 population : 32100
	 fact : A
	 country : china
C :
	 population : 465487
	 fact : C
	 country : america
           

繼續閱讀