字典是为能够更准确地为各种真实物体建模。你可以新创建一个表示人的字典,然后想在其中存储多少信息就存储多少信息:姓名、年龄、地址、职业以及要描述的任何方面。你还能够存储任意两种相关的信息,如一系列单词及其含义等。
一个简单的字典
person.py
person = {'name':'杨明','age':23}
print(person['name'])
print(person['age'])
执行结果:
添加键-值对
字典是一种动态结构,可随时在其中添加键-值对,可一次指定字典名、用方括号括起的键和相关联的值。
为第一个例子添加性别和地址的键-值对:
person = {'name':'杨明','age':23}
print(person)
#为该人添加性别和地址
person['sex'] = 'woman'
person['address'] = '北京市海淀区'
print(person)
输出结果为:
删除键-值对
对于字典中不再需要的信息,可使用del语句将相应的键-值对彻底删除。使用del语句时,必须指定字典名和要删除的键。
例如,将上述中年龄删除
person = {'name':'杨明','age':23}
print(person)
#为该人添加性别和地址
person['sex'] = 'woman'
person['address'] = '北京市海淀区'
print(person)
#删除年龄
del person['age']
print(person)
输出结果:
遍历字典
一个Python字典可能只含几个键-值对,也可能包含数百个键-值对。鉴于字典可能包含大量的数据,Python支持对字典遍历。
使用for循环遍历键-值对
favourties_lang = {
'su':'C++',
'yang':'Python',
'liu':'java',
}
for key,value in favourties_lang.items():
print(key.title()+"'s favorties lang is "+value.title()+".")
输出结果:
分别遍历字典中的键和值
favourties_lang = {
'su':'C++',
'yang':'Python',
'liu':'java',
}
print("遍历其中的键:")
for name in favourties_lang.keys():
print(name)
print("遍历其中的值:")
for language in favourties_lang.values():
print(language)
输出结果:
注意:上述单独取出字典中的值是没有考虑重复。涉及的值很少时,这也许不是问题,但如果被调查者很多,最终列表可能包含大量的重复项。为剔除重复项,可使用集合(set)。
favourties_lang = {
'su':'C++',
'yang':'Python',
'liu':'java',
'zhang':'Python',
}
for language in set(favourties_lang.values()):
print(language)
输出结果:
嵌套
有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。你可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。
例如:
#创建一个用于存储人的空列表
people = []
#创建30个女性
for person in range(30):
new_person = {'sex':'woman','worker':'Doctor'}
people.append(new_person)
#显示前五个人
for doctor in people[:5]:
print(doctor)
print('......')
#显示创建了多少个人
print("此次创建了:"+str(len(people)))
输出结果:
在字典中存储列表
有时候,需要将列表存储在字典中,而不是将字典存储在列在表中。
person.py
#创建一个存储人信息的字典
person ={
'name':"杨明",
'爱好':['阅读','旅游','音乐'],
}
#概述这个人的爱好
print(person['name']+"的爱好有:")
for hobbies in person['爱好']:
print(hobbies)
输出结果: