迭代python

时间:2016-11-28 14:37:25

标签: python loops findall

我正在尝试设置一个数据集,用于检查文章列表中提到的几个不同名称的频率。因此,对于每篇文章,我想知道提及nameA,nameB等的频率。但是,我在迭代列表时遇到了麻烦。

我的代码如下:

for element in list_of_names:
for i in list_of_articles:
    list_of_namecounts = len(re.findall(element, i))
  1. list_of_names =具有多个名称的字符串[nameA nameB nameC]
  2. list_of_articles =包含40.000个字符串的列表
  3. list_of_articles中的文章示例:

    1. 指数:1
    2. 类型:str
    3. 规模:阿姆斯特丹 - definanciële...
    4. 我得到的错误是:期望的字符串或缓冲区

      我虽然在迭代字符串列表时,re.findall命令应该使用这样的列表,但对Python也是新的。知道怎么解决我的问题吗?

      谢谢!

1 个答案:

答案 0 :(得分:0)

如果您的列表是['apple','apple','banana']并且您想要结果:apple = 2,那么:

from collections import Counter

list_count = Counter(list_of_articles)

for element in list_of_names:
    list_of_namecounts = list_count[element]

假设list_of_namecounts是一个列表¿?

list_of_namecounts = []
for element in list_of_names:
    list_of_namecounts.append(list_count[element])

See this for more understanding