【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



  • 10
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值