字典类型是根据一个信息查找另一个信息的方式构成了“键值对”,它表示索引用的键和对应的值构成的成对关系。
字典是可变序列。
字典中的元素是无序的。
字典的键必须唯一,不能有重复;但是值可以出现重复。
字典中的键要求是不可变序列。字符串,整数,浮点数,元组都可以作为字典的键。
字典类型的创建方式
1)使用{}直接创建字典
d={key1:value1,key2:value2,...}
2)使用内置函数dict()创建字典
语法结构:
dict(key1=value1,key2=value2,...)
还可以通过映射函数创建字典,最后使用dict()函数转换一下
zip(lst1,lst2) #lst1中的值做键,lst2中的值做值,一一对应
删除字典
del 字典名
#使用{}创建字典 当有两个相同的键时,最后的值会覆盖前面的值 d={1:'hello',2:'world',3:'python',2:'welcome'} print(d) #zip函数来创建 需要使用dict函数转换 lst1=[10,20,30,40] lst2=['cat','dog','tiger','lion','dragon'] zipobj=zip(lst1,lst2) #当两个列表中元素个数不一致时,以数量少的那个为准。其中前面的列表中的值为键,后面的列表中的值为值 print(type(zipobj)) #是一个zip对象 #print(list(zipobj)) #zip对象需要通过dict函数转换一下 d=dict(zipobj) print(d) #使用dict函数 d=dict(cat=10,dog=20,tiger=30) print(d) t=(10,20,30) print({t:10}) #可以使用元组作为字典的键,但不能用列表作为键 print('字典的长度',len(d)) print('字典的最大值',max(d)) print('字典的最小值',min(d)) #删除字典 del d
字典的key是无序的,python3.5及以前版本都是无序的,python3.6版本进行处理,看到是“一致的”。
字典元素的取值
d[key]或d.get(key) #d为字典名
注意:当key存在时,使用两种方式都可以访问;当key不存在,d[key]访问直接报错,d.get(key)会返回None
字典的遍历
1)遍历出key或value的元组
for element in d.items(): pass
2)分别遍历出key和value
for key,value in d.items(): pass
d={'hello':10,'world':20,'python':30}
print(d)
#通过d[key]访问
print(d['hello'])
# print(d[10]) key不存在时报错
#通过d.get(key)访问
print(d.get('hello'))
print(d.get(10)) #key不存在时,返回None
# 遍历出key或value的元组
for item in d.items():
print(item) #结果为key和value组成的一个元组
# 遍历出key,value
for key,value in d.items():
print(key,value)
字典的相关操作方法
| 方法 | 描述说明 |
| d.keys() | 获取所有的key数据 |
| d.values() | 获取所有的value数据 |
| d.pop(key,default) | key存在获取相应的value,同时删除该key-value对,否则获取默认值 |
| d.popitem() | 随机从字典中取出一个key-value对,结果为元组类型,同时将该key-value从字典中删除 |
| d.clear() | 清空字典中所有的key-value对 |
d={10:'cat',20:'dog',30:'tiger'}
print(d)
#向字典中添加元素
d[40]='lion' #直接通过赋值的方式添加新的元素
print(d)
# 获取字典中的所有key
keys=d.keys()
print(keys,type(keys))
print(list(keys)) #可以转换为列表
print(tuple(keys)) #可以转换为字典
# 获取字典中所有的value
values=d.values()
print(values,type(values))
print(list(values)) #可以转换为列表
print(tuple(values)) #可以转换为元组
# list函数将字典的内容转换为键值对形式
lst=list(d.items())
print(lst) #[(10, 'cat'), (20, 'dog'), (30, 'tiger'), (40, 'lion')]
# 将键值对形式的列表转换为字典
new_d=dict(lst)
print(new_d) #{10: 'cat', 20: 'dog', 30: 'tiger', 40: 'lion'}
# 使用pop函数,先将对应的值取出来,然后再将其删除掉,如果key不存在则报错,设置一个返回默认值则不会报错
print(d.pop(30))
print(d)
print(d.pop(50,'不存在')) #该key不存在,并返回一个默认值
print(d)
#随机删除
print(d.popitem())
print(d)
#清空字典
d.clear()
print(d)
print(bool(d)) #空字典的布尔值为False
字典生成式
d={key:value for i in range}
d={key:value for key,value in zip(lst1,lst2)}
#字典生成式 import random #方式1 d={item:random.randint(1,100) for item in range(5)} print(d) #方式2 lst1=[10,20,30] lst2=['hello','world','python'] d={k:v for k,v in zip(lst1,lst2)} print(d)
posted on
浙公网安备 33010602011771号