Ali*_*MAR 2 python counter python-collections
现在要压扁Counter元素我正在使用代码
import operator
from collections import Counter
from functools import reduce
p = Counter({'a': 2, 'p': 1})
n_p = [[e] * p[e] for e in p]
f_p = reduce(operator.add, n_p)
# result: ['a', 'a', 'p']
Run Code Online (Sandbox Code Playgroud)
所以我很想知道,如果可以更直接地完成.
p = Counter({'a': 2, 'p': 1})
p.elements() # iter(['a', 'a', 'p'])
list(p.elements()) # ['a', 'a', 'p']
''.join(p.elements()) # 'aap'
Run Code Online (Sandbox Code Playgroud)
请注意(根据文档)
元素以任意顺序返回
因此,您可能希望对结果进行排序以获得稳定的订单.