[python]pythonic的字典常用 *** 作

[python]pythonic的字典常用 *** 作,第1张

概述注意:dct代表字典,key代表键值 1.判断字典中某个键是否存在 实现 更Pythonic方法 2.获取字典中的值
你想对key的value加1,首先你要判断key是否存在,不存在给一个默认值 实现

注意:dct代表字典,key代表键值

1.判断字典中某个键是否存在

实现

dct.has_key(key)  #False

更Pythonic方法

key in dct  #False

2.获取字典中的值
你想对key的value加1,首先你要判断key是否存在,不存在给一个默认值

实现

if key not in dct:	dct[key] = 0dct[key] += 1

更Pythonic方法

dct[key] = dct.get(key,0) + 1

如果key存在则返回对应的value,如果不存在返回默认值(这里是0)

3.字典的value是可变对象
如果这个可变对象为List,你想初始化并修改它们。
实现

for (key,value) in data:	# 把key和value以元组的结构存到List中	if key in dct:		dct[key].append(value)	else:		dct[key] = [value]

更Pythonic方法

for (key,value) in data:	dct.setdefault(key,[]).append(value)

更更Pythonic方法

dct = defaultdict(List)  # 字典value的默认值为[]for (key,value) in data:	dct[key].append(value)

dct = defaultdict(List) 等同于 dct.setdefault(key,[]) 据说前者快。
defaultdict详解

4.合并两个字典

a = {'a':1,'b':2}b = {'c':3}# 方法1new_dict = anew_dict.update(b)# 方法2new_dict = dict(a.items()+b.items())# 方法3(Pythonic)new_dict = dict(a,**b)

如果合并两个字典的时候,如果两个字典有相同的key,则把value相加

from collections import Countera = {'a':1,'b':2}b = {'a':1}c = Counter(a) + Counter(b)  # 此时c为Counter对象c = dict(c)  # 转变成字典print c# {'a': 2,'b': 2}

参考:

python:字典剧本

python中两个字典合并

合并字典时,相同key的value相加

总结

以上是内存溢出为你收集整理的[python]pythonic的字典常用 *** 作全部内容,希望文章能够帮你解决[python]pythonic的字典常用 *** 作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1190190.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存