Python 在两行中匹配两个单词和+;一对配对的?

Python 在两行中匹配两个单词和+;一对配对的?,python,python-3.x,Python,Python 3.x,所以我得到了一个变量列表,它总是被输入一个新行 变量words,这是一个单字字符串的大列表 每次list更新时,我都想将它与words进行比较,看看words中是否有任何字符串在list 如果它们确实匹配,让我们假设单词和都在其中,那么我想打印“和:1”。然后,如果下一个句子也有这样的内容,则打印“和:2”,等等。如果出现另一个单词,例如,我想打印+1 到目前为止,我已经用text.split()将传入的文本分割成一个数组-不幸的是,这就是我卡住的地方。我确实看到了[x代表x在单词中,如果x在列

所以我得到了一个变量
列表
,它总是被输入一个新行 变量
words
,这是一个单字字符串的大列表

每次
list
更新时,我都想将它与
words
进行比较,看看
words
中是否有任何字符串在
list
如果它们确实匹配,让我们假设单词和都在其中,那么我想打印
“和:1”
。然后,如果下一个句子也有这样的内容,则打印
“和:2”
,等等。如果出现另一个单词,例如,我想打印+1

到目前为止,我已经用
text.split()
将传入的文本分割成一个数组-不幸的是,这就是我卡住的地方。我确实看到了
[x代表x在单词中,如果x在列表中]
中的一些用法,但我不知道如何使用它。另外,我将如何提取匹配的特定单词这有一个诀窍:


sentence = "Hello this is a sentence"
list_of_words = ["this", "sentence"]

dict_of_counts = {}                     #This will hold all words that have a minimum count of 1.

for word in sentence.split():           #sentence.split() returns a list with each word of the sentence, and we loop over it.
    if word in list_of_words:
        if word in dict_of_counts:      #Check if the current sentence_word is in list_of_words.
            dict_of_counts[word] += 1   #If this key already exists in the dictionary, then add one to its value.
        else:
            dict_of_counts[word] = 1    #If key does not exists, create it with value of 1.
        print(f"{word}: {dict_of_counts[word]}") #Print your statement. 
总计数保存在
dict\u of\u counts
中,如果您打印它,它将如下所示:
{'this':1,“句子”:1}
您应该在此处使用
defaultdict
以实现最快的处理

from collections import defaultdict

input_string = "This is an input string"
list_of_words = ["input", "is"]
counts = defaultdict(int)

for word in input_string.split():
    if word in list_of_words:
        counts[word] +=1
您可以使用一个对象来记录正在跟踪的每个单词。要提高性能,请在单词列表中使用
(您说过它很大)。为了简单起见,假设输入行数据中没有标点符号。大小写是通过将所有输入字转换为小写来处理的

从集合导入计数器
单词={'and','the','in','of','had','is'}要计算的单词
单词计数=计数器()
lines=[“兔子和鼹鼠住在地里”,
“这是一个包含had的句子”,
“哦,里面也有。而且和也是”]
对于行中的行:
tracked_words=[w表示单词在line.split()中,如果(w:=word.lower())在words中]
字数统计。更新(跟踪字数)
打印(*[f'{word}:{word}
对于集合中的单词(被跟踪的单词),sep=',')
输出

in:1中的:3和:1
这个:4,in:2,is:1,had:1
第:5,和第:3,in:4,is:2,had:2

基本上,这段代码接受一行输入,将其拆分为单词(假设没有标点符号),将这些单词转换为小写,并丢弃不在单词主列表中的任何单词。然后更新计数器。最后打印出相关单词的当前值。

因此我做了这项工作,并对其进行了一些编辑,尽管它似乎跳过了
如果dict\u of\u中的单词计数:
,即使单词在列表中也是如此。我似乎无法让它完成if语句,并且总是转到else,或者在从顶部重新启动之前,它只会转到句子中单词的
。split():