计算列表中的元素数量

时间:2016-06-29 17:26:15

标签: python

我有一个清单

my_list = ['TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC', 'TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC', 'AGCTCCCCGTTTTC,AGCTCCCCGTTTTC']

我正在尝试计算列表中每个单词出现的次数。我用了代码

from collections import Counter
for i in len(my_list):
...     Counter(my_list[i]).most_common()
... 

我收到错误

追踪(最近一次通话):   文件“”,第1行,in TypeError:'int'对象不可迭代

我做错了什么?

3 个答案:

答案 0 :(得分:3)

你的迭代循环是混合概念。它应该只是:

for i in my_list:
  Counter(i).most_common()

您无需进行索引编制。

这给了我:

[('T', 48), ('A', 32), ('C', 16), ('G', 16), (',', 7)]
[('T', 48), ('A', 32), ('C', 16), ('G', 16), (',', 7)]
[('C', 12), ('T', 10), ('G', 4), ('A', 2), (',', 1)]

不确定如何解释,但也许你可以。 :)

答案 1 :(得分:3)

对我来说,它归结为OP意味着 word 。我的解释如下:

for string in my_list:
    print(Counter(string.split(',')).most_common())
制造

[('TTATGCTAAGTATC', 8)]
[('TTATGCTAAGTATC', 8)]
[('AGCTCCCCGTTTTC', 2)]

答案 2 :(得分:1)

此解决方案不再使用for循环,而是具有更好的时间复杂度

git checkout Reply-comments
git merge upstream/master

这给出了输出

from collections import Counter
my_list = ['TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC', 'TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC,TTATGCTAAGTATC', 'AGCTCCCCGTTTTC,AGCTCCCCGTTTTC']

Counter(my_list)