如果我们需要在Python中实现counter.elements()
(就像在Python中编写代码一样),以下工作,但我想知道更多Pythonic的写法是什么?
所以我认为它类似于:如果你有一个包含键和计数的字典,你如何返回一个包含数组中所有元素的数组?
import collections
from functools import reduce # needed for Python 3
counter = collections.Counter(['hello', 'world', 'hello', 'hi', 'hello', 'hi'])
print([i for i in counter.elements()])
print(reduce(lambda a, b: a + b, [[k] * v for (k, v) in counter.items()]))
(最后一行是模拟counter.elements()
的效果......可能是元素的不同顺序,这是不保证的。简单的代码,只是假设计数不是负数。)
所以问题是,如何以更好的方式或以更多的Pythonic方式编写最后一行。
答案 0 :(得分:1)
只需使用list(counter.elements())