-
创建字典的几种方法
1.直接创建,冒号隔开:mydict = {‘key’:’value’…}
2.=连接键值对 :mydict = dict(key1=value1,key2=value2…)
3.创建一个空的,慢慢赋值:mydict={} mydict[key1]=value1 mydict[key2]=value2
4.利用zip压缩两个序列里面的值,组成键值对
keys = [a,b,c,d] values = [e,f,g,h] mydict = dict(zip(keys,values))
5.可全部初始化为一个值,然后需要的时候修改
list = [a,b,c,d] mydict = dict.fromkeys(list, "defaults") //?可以是任何你想要的值
-
字典删除元素
1.方法一 pop(key[,default])d = {'a':1,'b':2,'c':3} # 删除key值为'a'的元素,并赋值给变量e1 e1 = d.pop('a') print(e1) ==》1 # 如果key不存在,则可以设置返回值 e2 = d.pop('m','404') print(e2) ==》404 # 如果key不存在,不设置返回值就报错 e3 = d.pop('m') ==〉报错KeyError:'m'
2.方法二 del d[key],可以删除整个字典或者某个键值对
d = {'a':1,'b':2,'c':3} # 删除给定key的元素 del d['a'] print(d) # 删除不存在的元素 del d['m']
3.随机删除 popitem() :字典popitem()方法作用是:随机返回并删除字典中的一对键和值。
d = {'a':1,'b':2,'c':3} # 第一次运行 d.popitem() print(d) # 第二次运行 d.popitem() print(d) # 第三次运行 d.popitem() print(d)
4.一次性删除所有字典元素clear
d = {'a':1,'b':2,'c':3} print(d) # 删除所有元素,允许d为{} d.clear() print(d)
-
设置、修改、新增键值对
1.索引方式d = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} # 已存在更新 d['Age'] = 8 # 不存在新增 d['School'] = "DPS School" print(d) ==> {'Name': 'Zara', 'Age': 8, 'Class': 'First', 'School': 'DPS School'}
2.使用updata方法:dict1.update(dict2) 函数把字典dict2的键/值对更新到dict1里,存在的key就更新,不存在的新增
a = {1: 'apple', 2:'banana', 3: 'pear', 4: 'orange', 6: 'grap'} >>>a.items() dict_items([(1,'apple'), (2, 'banana'), (3, 'pear'), (4, 'orange'), (6, 'grap')]) >>>a.update({1:10,2:20,7:100}) # 字典 >>>a.update(a=1, b=2) # 或者k=v >>> a {1: 10, 2: 20,3: 'pear', 4: 'orange', 6: 'grap', 7: 100, "a":1, "b":2} #
3.dict.setdefault(key, default=None),如果键不存在于字典中,将会添加键并将值设为默认值
Python 字典 setdefault() 方法和 get() 方法类似,返回指定键的值,如果键不在字典中,将会添加键并将值设置为一个指定值,默认为None。
get() 和 setdefault() 区别: setdefault() 返回的键如果不在字典中,会添加键(更新字典),而 get() 不会添加键。#!/usr/bin/python3 D = {'Name': 'Runoob', 'Age': 7} print ("Age 键的值为 : %s" % D.setdefault('Age','25')) # 键存在在字典中则不会设置为指定值 print ("Sex 键的值为 : %s" % D.setdefault('Sex', 'NA')) # 键不存在,指定一个值 print ("School 键的值为 : %s" % D.setdefault('School')) # 键不存在,不指定值,默认为None print ("新字典为:", D) 结果如下: Age 键的值为 : 7 Sex 键的值为 : NA School 键的值为 : None 新字典为: {'Name': 'Runoob', 'School': None, 'Sex': 'NA', 'Age': 7}
-
两个字典合并
a={'a':1,'b':2,'c':3} b= {'aa':11,'bb':22,'cc':33} #方法一 print(dict(a,**b)) #方法二 这其实就是在内存中创建两个列表,再创建第三个列表,拷贝完成后,创建新的dict,删除掉前三个列表。这个方法耗费性能,而且对于python3,这个无法成功执行,因为items()返回是个对象。 print(dict(list(a.items())+list(b.items()))) #方法三 c={} c.update(a) c.update(b) print(c) #方法四 python 3.5支持,可以存在重复键值,比如说:a={'a':1,'b':2,'c':3,'aa':12}会报错TypeError: print() got multiple values for keyword argument 'aa' print(**a,**b) 他们的输出结果都是: {'bb': 22, 'cc': 33, 'aa': 11, 'a': 1, 'b': 2, 'c': 3}
-
key、value值互换
1.字典表达式 dict_ori = {'A':1, 'B':2, 'C':3} dict_new = {value:key for key,value in dict_ori.items()} print(dict_new) 2.zip方法 dict_ori = {'A':1, 'B':2, 'C':3} dict_new2= dict(zip(dict_ori.values(), dict_ori.keys())) print(dict_new2)
-
获取键值
d.keys()
d.values()
d.items()
d.get(‘key’, ‘不存在key时返回值’)
d[‘key’]
字典相关方法
最新推荐文章于 2022-07-29 14:19:02 发布