Python 3.x Python如何在每次在字符串中找到特定单词时打印字符串?

Python 3.x Python如何在每次在字符串中找到特定单词时打印字符串?,python-3.x,for-loop,list-comprehension,Python 3.x,For Loop,List Comprehension,我试图得到如下输出: I dont want ANY spam I dont want ANY spam I dont want ANY spam 使用此代码: wife = 'spam spam spam' [print('i dont want ANY spam') for x in wife if 'spam' in wife] 但我得到的是: I dont want ANY spam I dont want ANY spam I dont want ANY spam I dont w

我试图得到如下输出:

I dont want ANY spam
I dont want ANY spam
I dont want ANY spam
使用此代码:

wife = 'spam spam spam'
[print('i dont want ANY spam') for x in wife if 'spam' in wife]
但我得到的是:

I dont want ANY spam
I dont want ANY spam
I dont want ANY spam
I dont want ANY spam
I dont want ANY spam
I dont want ANY spam  
I dont want ANY spam
I dont want ANY spam
I dont want ANY spam
I dont want ANY spam
I dont want ANY spam
I dont want ANY spam
I dont want ANY spam
I dont want ANY spam
我只需要它打印出来,每次它看到的字垃圾邮件从可变的妻子,我怎么能做到这一点

for x in wife.split():
    if x == "spam":
        print ("I dont want ANY spam")
试试这个。您正在遍历
妻子的每个字母,而不是每个单词
.split()
使其遍历每个单词

或者您可以尝试:

print ("I dont want ANY spam \n" * wife.count("spam"))

您可以通过在您的
妻子中添加
split()
来修复此问题

wife = 'spam spam spam'
[print('i dont want ANY spam') for x in wife.split(' ') if 'spam'==x]

这是因为您正在迭代一个字符串,在本例中,您将通过屏幕为字符串的每个字符显示该字符串 [print('i not want ANY spam')for x in wife.split()如果'spam'==x]
这将把交互减少到只有三个

虽然我不明白你为什么用列表