gpt4 book ai didi

python - 如何获得python中元素的频率?

转载 作者:太空宇宙 更新时间:2023-11-04 03:50:00 25 4
gpt4 key购买 nike

我是 python 的新手,在处理列表方面遇到了一些困难。我有一个大致像这样的列表

rows = [[u'12'], [u'12'], [u'12'], [u'12'], [u'13'], [u'13'], [u'14'], [u'14'], [u'14']]

.我想获得每个元素的数量。我希望结果看起来像这样

res = [[12,4], [13,2], [14,3]]

我该怎么做?我试过了

collections.Counter(rows)

但它给了我

TypeError: Unhashable type 'list'

最佳答案

子列表总是只有一项吗?

>>> rows = [[u'12'],[u'12'],[u'12'],[u'12'],[u'13'],[u'13'],[u'14'],[u'14'],[u'14']]
>>> from collections import Counter
>>> [[int(k), v] for k, v in Counter(i[0] for i in rows).items()]
[[13, 2], [12, 4], [14, 3]]

如果子列表可以有多个项目

>>> [[int(k), v] for k, v in Counter(j for i in rows for j in i).items()]
[[13, 2], [12, 4], [14, 3]]

如果顺序很重要,您可以像这样将sorted 放入组合中

>>> sorted([int(k), v] for k, v in Counter(i[0] for i in rows).items())
[[12, 4], [13, 2], [14, 3]]

关于python - 如何获得python中元素的频率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21772315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com