首页 > 代码库 > Python词典设置默认值小技巧
Python词典设置默认值小技巧
使用defaultdict为词典设置默认值
测试代码
from collections import defaultdict
cn = defaultdict(list)
print cn
cn[‘abc‘].append(‘123‘)
print cn
cn[‘abc‘].append(‘456‘)
print cn
bn = defaultdict(int)
bn[‘abc‘]=1
print bn
bn[‘abc‘]+=1
print bn
运行结果
defaultdict(<type ‘list‘>,{})
defaultdict(<type ‘list‘>,{‘abc‘:[‘123‘]})
defaultdict(<type ‘list‘>,{‘abc‘:[‘123‘,‘456‘]})
defaultdict(<type ‘int‘>,{‘abc‘:1})
defaultdict(<type ‘int‘>,{‘abc‘:2})
默认词典的值即为list -> [] 或者 int -> 0 关键是能一次性设置所有的值,包括新值,速度很快。
使用setdefault为词典设置默认值
测试代码
cn ={}
cn.setdefault(‘123‘,[]).append(‘123‘)
print cn
cn.setdefault(‘123‘,[]).append(‘456‘)
print cn
运行结果
{‘123‘:[‘123‘]}
{‘123‘:[‘123‘,‘456‘]}
一次只能设置一个值,并且运行速度没有defaultdict快
通过fromkeys设置多个键的值
用法:dict.fromkeys(seq[, value])),value默认是None
说明:创建并返回一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值(默认为None)
测试代码
test_list=[‘123‘,‘456‘,‘789‘]
cn ={}.fromkeys(test_list,‘abc‘)
print cn
运行结果
{‘123‘:‘abc‘,‘789‘:‘abc‘,‘456‘:‘abc‘}
//TODO 为何以下代码返回为空词典??
test_list=[‘123‘,‘456‘,‘789‘]
cn ={}
cn.fromkeys(test_list,‘abc‘)
print cn
来自为知笔记(Wiz)
Python词典设置默认值小技巧
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。