python中有内置的reducebykey功能吗?如果没有,我如何模仿这个功能?你知道吗
例如,如果我在做一个简单的字数统计:
>>> x=[('a', 1), ('a', 1), ('b', 1), ('c', 1)]
>>> reduce(lambda a,b:a+b, x)
('a', 1, 'a', 1, 'b', 1, 'c', 1)
我想要的是让它返回[('a',2),('b',1),('c',1)]。但是reduce()函数只是遍历了所有元组,实际上并没有组合键。有办法吗?你知道吗
Tags:
作为一种更有效的方法,您可以使用
collections.defaultdict
:请注意,这并没有保留顺序,如果您愿意,可以使用
collections.OrderedDict
intead ofdefaultdict
。你知道吗您可以使用OrderedDict。这也将维持秩序。你知道吗
在这里,我们正在迭代字典。我们在
result
ordereddict中查找键item[0]
。如果找到了,那么我们将item[1]
(在我们的例子中是1)加到已经存在的值上。否则,我们将默认值设为0,然后添加item[1]
(这将在第一次遇到元素时发生)。你知道吗使用字典计算相同的键:
相关问题 更多 >
编程相关推荐