你的管子上有一
黑科技
Grouping-with-dict
目标
要求是根据某个值来group一个dict,那我们一般会写成这样:
names = ['raymond', 'rachel', 'matthew', 'roger', 'betty', 'melissa', 'judith', 'charlie']
d = {}
for name in names:
key = len(name)
if key not in d:
d[key] = []
d[key].append(name)
小技巧
for name in names:
key = len(name)
d.setdefault(key, []).append(name)
关键词是setdefault理论上用get也可以?
下面这样也可以
d = defaultdict(list)
for name in names:
key = len(name)
d[key].append(name)
重点在于defaultdict
ChainMap
默认
近期评论