字典就是由键值对组成。键可以是数字、字符串、列表、元组。键必须是唯一的,值是可以重复的。
例子1:
# 1 创建空字典
dict1 = {}
# 2 直接赋值法创建字典
dict2 = {'b':1,'c':2,'d':3}
dict3 = {'a':[1,2,3],'b':[4,5,6],'c':[7,8,9],'d':[10,11,12]}
# 3 通过dict关键字创建字典
dict4 = dict(name='张三',age=18,sex='女')
# 4 通过list和dict创建字典,注意,list中是二元元组,否则报错
list1 = [('name','李四'),('age',20),('sex','男')]
dict5 = dict(list1)
# 5 利用dict和zip
dict6 = dict(zip('周吴郑王','abcd'))
# 6 用列表推导式
dict7 = {i:i**3 for i in range(0,3)}
# 7 用fromkeys创建字典
dict8 = dict.fromkeys(['a','b','c','d'],1234)
print(type(dict1),dict1)
print(type(dict2),dict2)
print(type(dict3),dict3)
print(type(dict4),dict4)
print(type(dict5),dict5)
print(type(dict6),dict6)
print(type(dict7),dict7)
print(type(dict8),dict8)
结果:
例子:
# 直接赋值法创建字典
dict1 = {'a':[1,2,3],'b':[4,5,6],'c':[7,8,9],'d':[10,11,12],'name': '张三', 'age': 18, 'sex': '女',0: 0, 1: 1, 2: 8}
# 取字典中的值,直接指定key取值时,如果字典中没有对应的key则会报错,用get方法,不会报错,且可以指定一个提示信息
print(dict1['a'])
print(dict1.get('name','没找到'))
print(dict1.get('name1','没找到name1对应的值'))
# 取字典的键
for k in dict1.keys():
print('取字典的键: ',k)
# 取字典的值
for v in dict1.values():
print('取字典的值: ',v)
# 取字典的键和值,items()方法返回一个元组
for k,v in dict1.items():
print('取字典的键dict1.items(): ', k)
print('取字典的值dict1.values(): ', v)
结果:
[1, 2, 3]
张三
没找到name1对应的值
取字典的键: a
取字典的键: b
取字典的键: c
取字典的键: d
取字典的键: name
取字典的键: age
取字典的键: sex
取字典的键: 0
取字典的键: 1
取字典的键: 2
取字典的值: [1, 2, 3]
取字典的值: [4, 5, 6]
取字典的值: [7, 8, 9]
取字典的值: [10, 11, 12]
取字典的值: 张三
取字典的值: 18
取字典的值: 女
取字典的值: 0
取字典的值: 1
取字典的值: 8
取字典的键dict1.items(): a
取字典的值dict1.values(): [1, 2, 3]
取字典的键dict1.items(): b
取字典的值dict1.values(): [4, 5, 6]
取字典的键dict1.items(): c
取字典的值dict1.values(): [7, 8, 9]
取字典的键dict1.items(): d
取字典的值dict1.values(): [10, 11, 12]
取字典的键dict1.items(): name
取字典的值dict1.values(): 张三
取字典的键dict1.items(): age
取字典的值dict1.values(): 18
取字典的键dict1.items(): sex
取字典的值dict1.values(): 女
取字典的键dict1.items(): 0
取字典的值dict1.values(): 0
取字典的键dict1.items(): 1
取字典的值dict1.values(): 1
取字典的键dict1.items(): 2
取字典的值dict1.values(): 8