阅读量:2
字典根据一个信息查找另外一个信息,也是可变数据类型,底层元素是无序的,第一个添加的元素,地址不一定在第一位,键只能有一个不能重复,但是值可以重复,字典当中的键要求是不可以变的数据类型(因此列表不可以做为键)
对字典可以进行的基本操作:
d = dict(cat=40, dog=10) # 打印字典中的键值对 print('键值对:', d.items()) # 打印字典中的键 print('键:', d.keys()) # 打印字典中的值 print('值:', d.values()) # 获取特定键的值 print('cat 的值:', d.get('cat')) # 添加新的键值对 d['bird'] = 5 # 修改现有键的值 d['dog'] = 15 # 删除键值对 del d['cat'] # 再次打印字典 print('修改后的字典:', d)
创建字典的方法:
第一种:使用{}
第二种:使用内置函数dict()
zip(lst1,lst2):lst1作为键,lst2作为值
#使用{} d={10:'cat',20:'dog',10:'pig'} print(d)#当key相同时,value进行了覆盖 #使用zip函数 lst1=[10,20,30,40] lst2=['cat','dog','pig'] zipobj=zip(lst1,lst2) print(zipobj)#####<zip object at 0x000001A3FC387900> print(list(zipobj))######[(30, 'cat'), (20, 'dog'), (30, 'pig')] #方法三,将其转换为字典类型,进行以下步骤以前应该将前面print(list(zipobj))注释 d=dict(zipobj) print(d) #方法4使用参数创建字典 d=dict(cat=10,dog=20) print(d) #元组作为键 t=(10,20,30) print({t:10}) #列表作为键,程序报错,列表为可变数据类型不可以作为键使用 lst=[10,20,30] print(lst)
d=dict(cat=40,dog=10) #字典属于序列 print('max:',max(d)) print('min:',min(d)) print('len:',len(d)) # max: dog,大小与后面的值咩有关系,与cat和dog的首字母有关系 # min: cat # len: 2
d={'hello':10,'money':20,'python':30} #访问字典当中的元素 #(1)使用d[key] print(d['hello']) #(2)d.get(key) print(d.get('hello')) #二者之间是有区别的,如果key不存在,d[key]报错,d.get(key)仍然可以指定默认值 print(d.get('java'))#输出None print(d.get('java','不存在'))#输出不存在,即直接将将不存在赋给了Java print(d['java'])#直接报错
d={'hello':10,'money':20,'python':30} #访问字典当中的元素 #(1)使用d[key] print(d['hello']) #(2)d.get(key) print(d.get('hello')) #二者之间是有区别的,如果key不存在,d[key]报错,d.get(key)仍然可以指定默认值 print(d.get('java'))#输出None print(d.get('java','不存在'))#输出不存在,即直接将将不存在赋给了Java #字典的遍历 for item in d.items(): print(item)#key=value组成的一个元素,注意这里是items #在使用for循环遍历时,分别获取key,value for key,value in d.items(): print(key,value)
字典的相关操作方法
字典的方法 | 描述说明 |
d.key() | 获取所有的key数据 |
d.values() | 获取所有的value数据 |
d.pop(key.default) | key存在获取相应的value,同时删除key-value对,否则获取默认值 |
d.popitem() | 随机从字典中取出一个key—value对,结果为元组类型,同时将该key—value从字典中删除 |
d.clear() | 清空字典中所有的key-value |
d={101:'ll',102:'lz',103:'az'} print(d) #向字典中添加元素 d[104]='sz' print(d) #获得字典中所有的key keys=d.keys() print(keys)#结果为:dict_keys([101,102,103,104]) print(list(keys)) print(tuple(keys)) #获取字典中所有的value values=d.values() print(values)#dict_values(['ll', 'lz', 'az', 'sz']) print(list(values))#列表为[] print(tuple(values))#元组为()
#key-->value lst=list(d.items()) print(lst) #先转换为字典类型再使用pop()函数 d=dict(lst) print(d) print(d.pop(101)) print(d) print(d.pop(100,'不存在')) #随机删除 print(d.popitem()) print(d) #清空字典中所以的元素 d.clear() print(d)
字典的生成式
import random d={item:random.randint(1,100) for item in range(4)} print(d) #映射类型 lst=[101,102,103] lst2=['ll','ww','dd'] d={key:value for key,value in zip(lst,lst2)} print(d)