键值对
根据一个信息查找另一个信息的方式构成了"键值对",它表示索引用的键和对应的值构成的关系。
字典的特征
1.通过键从字典中获取指定的项,但是不能通过索引来获取
2.字典是无序的,也被称为hash表(散列表)
3.是python中的可变序列
4.字典中的键必须唯一,如果出现两次,后出现的将覆盖先出现的
5.字典中的键要求是不可变序列
字典的创建
1.使用{}直接创建字典
d={key1:value1;key2:value2,....}
示例:
d={10:'cat',20:'yoon',30:'hank',20:'uuu'} # key相同,后出现的覆盖先出现的 print(d) #输出结果:{10: 'cat', 20: 'uuu', 30: 'hank'}
2.使用内置函数dict()创建字典
通过映射函数创建字典
zip(lst1,lst2)
示例:
lst1=[10,20,30,40] lst2=['cat','dog','yoon','hank'] result=zip(lst1,lst2) # 映射函数的结果是zip对象 print(result) print(list(result)) # 通过列表方式获取zip对象结果 d=dict(result) print(d)
通过给定关键字创建字典
dict(key1=value1,key2=value2,....)
示例:
使用参数创建字典
d=dict(cat=10,dog=20,yoon=30,hank=40) # 参数相当于变量,变量的名字不需要加引号,指的是:cat,dog,yoon,hank print(d)
字典的删除
del d
字典元素的访问
d[key]或d.get(key)
示例:
d={'hello':10,'yoon':20,'python':30} # 访问字典中元素 #(1) 使用[key] print(d['yoon']) #(2) 使用d.get(key) print(d.get('yoon')) # 二者之间有区别,如果键不存在时,d[key]报错,使用d.get(key)可以指定默认值 #print(d['java']) # 报错,无java print(d.get('java')) # 输出None,不报错 print(d.get('java','不存在'))
字典元素的遍历
for element in d.items(): for key,value in d.items(): pass pass
示例:
for item in d.items(): print(item) # 结果是元组类型 输出结果: ('hello', 10) ('yoon', 20) ('python', 30) # 在使用for循环,分别获取键和值 for key,value in d.items(): print(key,value) 输出结果: hello 10 yoon 20 python 30
字典的相关操作
d.keys() 获取所有key k.values() 获取所有value d.pop(key,default) key存在获取相应的value,同时删除key-value对,否则获取默认值 d.popitem() 随机从字典中获取一个key-value对,结果为元组类型,同时将该key-value从字典中删除 d.clear() 清空字典中所有的key-value对
示例:
d={1001:'李梅',1002:'王华',1003:'张三'} print(d) # 向字典添加数据 d[1004]='李四' print(d) # 获取字典所有key keys=d.keys() print(keys) # 转换列表或元组 print(list(keys)) print(tuple(keys)) value=d.values() print(value) # pop函数 print(d.pop(1001)) # 先获取李梅,再删除李梅 print(d) # 随机删除 print(d.popitem()) # 随机删除 print(d) # 清空字典中所有元素 d.clear() print(d)
字典生成式
使用指定范围的数作key
d={key:value for item in range}
使用映射函数生成字典
d={key:value for key,value in zip(lst1,lst2)}