在Python中,字典是一系列键—值对。每个键都与一个值相关联,你可以使用键来访问与之
相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。事实上,可将任何Python对
象用作字典中的值。
在Python中,字典用放在花括号{}中的一系列键—值对表示
例1:
'''
人 :使用一个字典来存储一个熟人的信息,包括名、姓、年龄和居住的城市。该字典应包含键 first_name 、 last_name 、 age 和 city 。
将存储在该字典中的每项信息都打印出来。
'''
humen = {
'first_name':'张',
'last_name':'三',
'age':'11',
'city':'上海'
}
print(humen)
print('------------------------------')
#喜欢的数字 :使用一个字典来存储一些人喜欢的数字。请想出 5 个人的名字,并将这些名字用作字典中的键;想出每个人喜欢的一个数字,
#并将这些数字作为值存储在字典中。打印每个人的名字和喜欢的数字。为让这个程序更有趣,通过询问朋友确保数据是真实的
nums = {
'A':1,
'B':2,
'A':5,
'D':2,
'C':0
}
#遍历字典中的键和值,用方法items()
for name,num in nums.items():
print(name+',你喜欢数字'+str(num)+'吗?')
print('------------------------------')
#词汇表 : Python 字典可用于模拟现实生活中的字典,但为避免混淆,我们将后者称为词汇表。
#想出你在前面学过的 5 个编程词汇,将它们用作词汇表中的键,并将它们的含义作为值存储在词汇表中。
#以整洁的方式打印每个词汇及其含义。为此,你可以先打印词汇,在它后面加上一个冒号,再打印词汇的含义;
#也可在一行打印词汇,再使用换行符( \n )插入一个空行,然后在下一行以缩进的方式打印词汇的含义
zidian = {
'one':'一',
'apple':'苹果',
'hello':'你好',
'yi':'一',
'what':'什么'
}
for danci,ciyi in zidian.items():
print(danci.title()+':'+ciyi)
#只输出键,用方法keys()
#按照排序输出,用sorted()
for n in sorted(zidian.keys()):
print(n,end=' ')
#只输出值,用方法values()
print("\n")
for m in zidian.values():
print(m,end=' ')
#取字典中的值,并进行去重,可使用集合(集合类似于列表,但每个元素都必须是独一无二的)
#集合类似列表,但是是用{},且创建空集合不能用{}(这个是字典),可以用set()
print("\n")
for a in set(zidian.values()):
print(a,end=' ')
print('\n------------------------------')
#创建一个应该会接受调查的人员名单,其中有些人已包含在字典中,而其他人未包含在字典中。
#遍历这个人员名单,对于已参与调查的人,打印一条消息表示感谢。对于还未参与调查的人,打印一条消息邀请他参与调查。
mingdans = {
'zhao':'赵',
'qian':'钱',
'sui':'孙',
'li':'李'
}
mingdan = ['zhou','li','wu']
for b in mingdans.keys():
if b in mingdan:
print(b+',感谢参与调查')
else:
print(b+',您还没有参与调查')
例2:
'''
人 :创建三个表示人的字典,然后将这三个字典都存储在一个名为 people 的列表中。
遍历这个列表,将其中每个人的所有信息都打印出来
'''
humen1 = {'A':'a','B':'b'}
humen2 = {'D':'d'}
humen3 = {'E':'e','T':'t'}
people = [humen1,humen2,humen3]
for n in people:
for a,b in n.items():
print(a+b)
print('--------------------------')
#喜欢的地方 :创建一个名为 favorite_places 的字典。在这个字典中,将三个人的名字用作键;对于其中的每个人,都存储他喜欢的 1~3 个地方。
#为让这个练习更有趣些,可让一些朋友指出他们喜欢的几个地方。遍历这个字典,并将其中每个人的名字及其喜欢的地方打印出来。
favorite_places = {
'张三':['上海','北京'],
'李四':['开封'],
'王二':['合肥','重庆','郑州']
}
for name,city in favorite_places.items():
print('\n'+name+'喜欢:',end='')
for c in city:
print(''+c,end=' ')
print('\n--------------------------')
#创建一个名为 cities 的字典,其中将三个城市名用作键;对于每座城市,都创建一个字典,并在其中包含该城市所属的国家、人口约数
#以及一个有关该城市的事实。在表示每座城市的字典中,应包含 country 、 population 和 fact 等键。将每座城市的名字以及有关它们的信息都打印出来
names = {
'张三':{'年龄':'12','身高':'1.32m','体重':'40kg'},
'李四':{'年龄':'15','身高':'1.73m','体重':'55kg'},
'王二':{'年龄':'21','身高':'1.81m','体重':'60kg'},
}
for name,qita in names.items():
print(name+':')
for a,b in qita.items():
print('\t'+a+':'+b)
print('--------------------------')
#批量创建字典放在列表中
#创建一个空的列表
users = []
#批量创建5个信息相同的用户
for uesr in range(5):
new_user = {'name':'A','age':'6'}
users.append(new_user)
#修改前2个用户的信息
for gai_user in users[:2]:
if gai_user['name'] == 'A':
gai_user['age'] = '10'
print(users)