Python程序中的字典跟现实生活中的字典很像,它以键值对(键和值的组合)的方式把数据组织到一起,我们可以通过键找到与之对应的值并进行操作。就像《新华字典》中,每个字(键)都有与它对应的解释(值)一样,每个字和它的解释合在一起就是字典中的一个条目,而字典中通常包含了很多个这样的条目。
创建字典
在Python中创建字典可以使用{}
字面量语法,这一点集合是一样的。但是字典的{}
中的元素是以键值对的形式存在的,每个元素由:
分隔的两个值构成,:
前面是键,:
后面是值,键是不允许重复,值可以重复,如果存入多个键相同的,则会覆盖前面的,以最后一个为准。
字典的创建
字典中的键只能是不可变类型,值可以是列表,字典等。
1、字面量语法
student = {
'id': 2018,
'name': '王二',
'sex': '男',
'age': 21,
'address': '北京',
'contact': {'QQ': 220, 'tel': 135},
'favorites': ['看电视', '玩游戏']
}
2、空字典
dict1 = {}
3、构造器函数
student2 = dict(id=1002, name='王大锤', sex='男', birthday='1990-1-12')
4、生成式语法
dict2 = {i: i ** 2 for i in range(1, 10)}
5、使用zip函数
dict3 = dict(zip('123','abc'))
字典只能根据键取值:dict['键']
print(student['id']) # 2018
print(student['favorites']) # ['看电视', '玩游戏']
print(student['contact']) # {'QQ': 220, 'tel': 135}
当字典里存有列表,字典这种值时,我们需要再次提取里面字典中的值:dict['键'][]
print(student['contact']['tel']) # 135
循环取出列表中的元素
for i in student['favorites']:
print(i)
看电视
玩游戏
字典的操作
字典长度len()
一个键值对为一个元素。
student1 = {
'id': 1001,
'name': '五十',
'sex': '男',
'birthday': '1999-10-28'
}
print(len(student1)) # 4
遍历字典,取出键和对应的值
# 遍历字典
for i in student1:
print(i, student1[i])
for key, value in student1.items():
print(key, value)
items():将字典的键值分别取出来存在一个元组里面,(key,value)
取字典所有值
print(student1.values())
# dict_values([1001, '五十', '男', '1999-10-28'])
取字典键
print(student1.keys())
# dict_keys(['id', 'name', 'sex', 'birthday'])