有条件地在python中打印出行

ach*_*low 0 python string generator

我有一个字符串列表.我希望打印出符合条件的列表中的字符串.清单如下:

In [5]: L = ["John and Mary", "Leslie", "Iva and Mark Li"]
Run Code Online (Sandbox Code Playgroud)

我希望打印出L中的每个字符串,其中包含一个字符串and-

'John and Mary', 'Iva and Mark Li'
Run Code Online (Sandbox Code Playgroud)

我有以下代码:

In [6]: def grep(pattern, line):
            if pattern in line:
                print line

In [7]: [grep("and", I) for I in L]
Run Code Online (Sandbox Code Playgroud)

这回来了

John and Mary
Iva and Mark Li
Out[7]: [None, None, None]
Run Code Online (Sandbox Code Playgroud)

什么是正确的方法呢?谢谢!!

Joh*_*man 5

应该是直截了当的:

>>> L = ["John and Mary", "Leslie", "Iva and Mark Li"]
>>> for s in L:
    if ' and ' in s: print(s)


John and Mary
Iva and Mark Li
Run Code Online (Sandbox Code Playgroud)

如果要捕获列表中的字符串,请使用理解:

>>> [s for s in L if ' and ' in s]
['John and Mary', 'Iva and Mark Li']
Run Code Online (Sandbox Code Playgroud)


Dar*_*uth 5

因为您的函数没有return语句,所以它总是返回None.您需要更换printreturn.