我有一个清单
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'对象不可迭代
我做错了什么?
答案 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)