来自另一个列表的字符串中的单词数

时间:2018-09-21 03:16:15

标签: python python-3.x

我有一个单词列表,我需要查找字符串中存在的单词数。

例如:

text_string = 'I came, I saw, I conquered!'
word_list=['I','saw','Britain']

我需要一个可打印的python脚本

{‘i’:3,’saw’:1,’britain':0}

3 个答案:

答案 0 :(得分:0)

您可以使用re.findalltext_string中查找所有单词,然后使用collections.Counter生成包含其计数的单词字典,并使用dict comprehension生成基于以下内容的字典word_list中的单词及其在Counter产生的字典中的对应计数:

from collections import Counter
import re
c = Counter(re.findall(r'[a-z]+', text_string.lower()))
print({w: c.get(w, 0) for w in map(str.lower, word_list)})

这将输出:

{'i': 3, 'saw': 1, 'britain': 0}

答案 1 :(得分:0)

使用dict

例如:

text_string = 'I came, I saw, I conquered!'
word_list=['I','saw','Britain']
text_string = text_string.lower()

print(dict((i, text_string.count(i)) for i in map(str.lower, word_list)))

输出:

{'i': 3, 'britain': 0, 'saw': 1}

答案 2 :(得分:0)

您可以在此处使用字典理解

d = {i.lower(): text_string.count(i) for i in word_list}
:~/python/stack$ python3.7 sum.py 
{'i': 3, 'saw': 1, 'britain': 0}

完整循环说明:

d = {}
for i in word_list:
    d[i.lower()] = text_string.count(i)