原文地址:http://www.cnblogs.com/herbert/archive/2013/01/09/2852843.html
作者首先看了看defaultdict的help解释,作者看了解释并且把英文翻译出来后,发现还是看不懂。
后面直接通过看示例看明白的。发现作者是挺风趣幽默的。
下面贴出,defaultdict() , setdefault和普通的 {} 代码
defaultdict和setdefault相比较,defaultdict的效率会高一些。
而普通的{}只能做赋值操作(因为你直接append操作的话你会找不到key)
import collections s = [(‘yellow‘, 1), (‘blue‘, 2), (‘yellow‘, 3), (‘blue‘, 4), (‘red‘, 1)] # defaultdict d = collections.defaultdict(list) for k, v in s: d[k].append(v) # d结果为{‘blue‘: [2, 4], ‘red‘: [1], ‘yellow‘: [1, 3] # Use dict and setdefault g = {} for k, v in s: g.setdefault(k, []).append(v) # g结果为{‘blue‘: [2, 4], ‘red‘: [1], ‘yellow‘: [1, 3]} # Use dict e = {} for k, v in s: e[k] = v# e结果为 {‘blue‘: 4, ‘red‘: 1, ‘yellow‘: 3}
时间: 2024-09-30 04:16:52