计算列表中元素的频率并将其加入

时间:2019-03-28 21:19:54

标签: python-3.x

我有一个清单清单。我想获取内部列表中元素的频率并将其与外部列表中的元素连接起来。

aa =['a', ['b', 'b', 'b', 'b', 'd', 'd']]

我尝试使用Counter来获取内部列表中每个元素的出现频率:

from collections import Counter
Counter(aa[1])

它给出:

Counter({'b': 4, 'd': 2})

我要将其与外部列表元素连接起来,并获得如下内容:

'ab4d2'

我还可以遍历Counter并获取列表中的键,值:

y = []
for k, v in surr.items():
    y.append(str(k) + str(v))

Output: ['O4', 'Sb2']

有很多答案可以得出发生的频率,但我没有找到任何答案(问题是有效地与外部“ a”连接)。谁能帮我这个忙。提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以将生成器表达式与str.join一起使用:

aa[0] + ''.join('%s%d' % t for t in Counter(aa[1]).items())

给出aa = ['a', ['b', 'b', 'b', 'b', 'd', 'd']],将返回:

ab4d2