字典的操作

Posted welljoy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字典的操作相关的知识,希望对你有一定的参考价值。

 

 

 

字典

要么是已经有了字典,我们调用里面的键值对

要么是空字典,我们根据实际情况放入键值对

 

#增加

dict1 = {}# 创建空字典后逐个添加键值对,非空字典也同样添加,如果遇到键相同的话,就会覆盖掉原先的键值对

dict1[‘color‘] = ‘red‘

dict1[‘points‘] = 5

dict1[‘x_position‘] = 25

dict1[‘y_position‘] = 0

#删除

del dict1[‘color‘] #直接删除,该键值对永远消失

 

pop(k,d = None) #删除指定键值对,d参数可以默认不填,如果需要删除的键值对不存在,返回None或者d的值

 

popitem() #奇葩的函数,随机删除一个键值对,如果字典为空会报错

KeyError: ‘popitem(): dictionary is empty‘

 

print(dict1.pop(‘color‘,‘yellow‘)) #返回‘red‘,此时‘color‘已被删除

print(dict1.popitem()) #随机删除一个键值对,你不知道删的是哪个

print(dict1) #删的只剩2个键值对了

 

#修改

直接重新赋值就是修改

dict1[‘color‘] = ‘green‘

 

#查询定位

dict1 = {‘points‘: 5, ‘color‘: ‘red‘, ‘y_position‘: 25, ‘x_position‘: 25}

print(dict1.items())

items()返回一个键值对列表

返回的是列表,dict_items([(‘x_position‘, 25), (‘color‘, ‘red‘), (‘y_position‘, 0), (‘points‘, 5)])

 

keys()返回一个列表,包含字典中的所有键

print(dict1.keys())

dict_keys([‘points‘, ‘x_position‘, ‘color‘, ‘y_position‘])

 

values()返回一个列表,包含字典中的所有值

print(dict1.values())

dict_values([0, ‘red‘, 25, 5])

 

get(key,beiyong)取得字典中的键值,如果无,则返回备用值

print(dict1.get(‘points‘)) #返回5

print(dict1.get(‘pointss‘)) #返回None

print(dict1.get(‘pointss‘,6)) #返回6

 

 

setdefault(key,default)检查key,如果字典中有了,返回该值,如果没有,增加这个key-default的键值对到字典

print(dict1.setdefault(‘pointss‘)) #返回None

print (dict1) #在字典里面增加了键值对‘pointss‘: None

print(dict1.setdefault(‘pointss‘,6)) #返回6

print (dict1) #在字典里面增加了键值对‘pointss‘: 6

print(dict1.setdefault(‘points‘,6)) #返回5

print (dict1) #在字典里面不再增加键值对

 

 

 

print (len(dict1)) #打印字典长度,4

print (dict1[‘color‘]) #打印具体键值 ‘red‘

 

#排序#去重

字典不排序,所以没有index

字典的键值对的键名称不能重复,所以count进行统计重复次数不适用

由于提取的值可能有重复,所以可以用set()函数进行去重

set(dict1.values())

#注意返回的是集合{25, 5, ‘red‘}

 

belist = list(dict1.values())

#values函数返回的是字典,需要变成列表属性后才能计数

print (belist.count(25)) #返回2

 

#复制

dict2 = dict1.copy() #列表和字典可以用copy函数,字符串和元组不行

 

#拼接和插入

update()把两个字典合并成一个

dict1.update(dict2) 将字典dict2更新到dict1中,当dict1中有key与dict2中一致,用dict2的覆盖掉,如果没有一致的,就把dict2的键值对添加进dict1

 

fromkeys()根据括号内的键值创建新的字典

info = {‘a‘:1,‘b‘:‘c‘,‘d‘:2}

print(info.fromkeys(‘aaron‘,[2,3,4])) #info在这里就是打酱油的,为了能用字典函数fromkeys而已

print(info.fromkeys([2,3,4],‘aaron‘))

print(info.fromkeys([2,3,4],[‘f‘,‘g‘,‘h‘]))

print(info)

{‘a‘: [2, 3, 4], ‘r‘: [2, 3, 4], ‘o‘: [2, 3, 4], ‘n‘: [2, 3, 4]} //aaron被拆分了,两个a是一样的

{2: ‘aaron‘, 3: ‘aaron‘, 4: ‘aaron‘} //每个键赋值aaron

{2: [‘f‘, ‘g‘, ‘h‘], 3: [‘f‘, ‘g‘, ‘h‘], 4: [‘f‘, ‘g‘, ‘h‘]} //后面是列表也一样赋值

{‘b‘: ‘c‘, ‘a‘: 1, ‘d‘: 2} //函数是生成新的列表,不影响原列表

 

 

#指定切片或分离

字典内的键值对是成对存储,键与键之间不进行排序,是乱序存储,连续打印同一个字典,展示出来的显示效果都是不一样的,所以没有索引值,无法切片或分离

 

 

 

 

 

 

以上是关于字典的操作的主要内容,如果未能解决你的问题,请参考以下文章

python之字典操作

python中字典的操作

python 字典操作提取key,value

Python 字典及字典的相关操作

Python 字典操作

Python基础-字典(字典常用函数/操作/字典遍历)