作者:chen_h
微信号 & QQ:862251340
微信公众号:coderpai
给所有的key的默认值设置为[],包括新添加的key
from collections import defaultdict
dic = defaultdict(list)
setdefault一次只能设置一个值,但好处是能使用链式语法,但是defaultdict更加快一点。
dic = {}
dic.setdefault("name_list", []).append('Tom')
使用fromkeys,用法 dict.fromkeys(seq[, value]),value默认是国际惯例的 None。
name_list = ['Tom', 'John']
dic = {}.fromkeys(name_list, 3)
# {'Tom': 3, 'John': 3}
dic = dict.fromkeys([1,2], True)
# {1: True, 2: True}
这种去重方法比用set更快。
mylist = [1,2,3,4,3,2,1,2,3,2,4]
list = {}.fromkeys(mylist).keys()
# list = [1,2,3,4]
a = [1,2,3]
b = a[:]
当将function设置为None时,可起到iterator的作用,结果类似于使用了zip,唯一不同的是map可以按照最长的列表扩展。
map(None, xrange(3), xrange(10, 12))
# [(0, 10), (1, 11), (2, None)]
zip(xrange(3), xrange(10, 12))
# [(0, 10), (1, 11)]
如果要删除的key数量较多(超过一半)的话,建议重新生成dict;如果数量较少,在pop和del都可以的情况下,建议使用del,这个比较快一点。
xrange与range的用法完全相同,但是 range() 返回的是一个列表,而xrange() 返回的是一个生成器。在返回很大的值的时候,使用xrange的性能比较好。