【问题标题】:Python how to print a string every time a specific word is found within a string?每次在字符串中找到特定单词时,Python如何打印字符串?
【发布时间】:2018-11-23 15:00:50
【问题描述】:

我正在尝试获得这样的输出:

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

我只需要它每次看到来自可变妻子的垃圾邮件一词时打印出来,我该怎么做?

【问题讨论】:

    标签: python-3.x for-loop list-comprehension


    【解决方案1】:
    for x in wife.split():
        if x == "spam":
            print ("I dont want ANY spam")
    

    试试这个。您正在遍历 wife 的每个字母而不是每个单词。 .split() 使其遍历每个单词。

    或者你可以试试:

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

    【讨论】:

      【解决方案2】:

      您可以通过在 wife 中添加 split() 来修复它

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

      【讨论】:

        【解决方案3】:

        发生这种情况是因为您正在迭代一个字符串,在这种情况下,您将通过屏幕显示字符串的每个字符 wife = 'spam spam spam' [print('i dont want ANY spam') for x in wife.split() if 'spam' == x] 这将交互减少到只有三个

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-05-06
          • 2015-07-30
          • 2019-06-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多