python字典update去重_字典的操作
发布日期:2021-06-24 13:09:28 浏览次数:2 分类:技术文章

本文共 2394 字,大约阅读时间需要 7 分钟。

字典

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

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

#增加

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} //函数是生成新的列表,不影响原列表

#指定切片或分离

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

转载地址:https://blog.csdn.net/weixin_33001305/article/details/112991136 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:arduino定时器控制舵机_【求教】如何控制舵机的速度?
下一篇:基于wincc的虚拟电梯设计_基于WinCC的电梯PLC控制仿真.doc

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年03月30日 18时11分30秒