加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

[python]pythonic的字典常用操作

发布时间:2020-12-20 10:02:21 所属栏目:Python 来源:网络整理
导读:注意: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] = 0dc

注意: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] = 0
dct[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}

# 方法1
new_dict = a
new_dict.update(b)

# 方法2
new_dict = dict(a.items()+b.items())

# 方法3(Pythonic)
new_dict = dict(a,**b)

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

from collections import Counter
a = {'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相加

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读