2016-07-23 18 views
0

我有一個字符串列表。我希望打印出符合條件的列表中的字符串。名單如下:有條件地打印出python中的行

In [5]: L = ["John and Mary", "Leslie", "Iva and Mark Li"] 

我希望能打印出每個字符串以L已經在它的and -

'John and Mary', 'Iva and Mark Li' 

我有以下代碼:

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

In [7]: [grep("and", I) for I in L] 

這將返回

John and Mary 
Iva and Mark Li 
Out[7]: [None, None, None] 

什麼是正確的做法?謝謝!!

+0

[if/else Python in Python](http://stackoverflow.com/questions/4260280/if-else-in-pythons-list-comprehension)可能是一個很好的帖子,供您參考。 – Skam

回答

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 

如果你想捕捉在列表中的字符串,用理解:

>>> [s for s in L if ' and ' in s] 
['John and Mary', 'Iva and Mark Li'] 
5

因爲你的函數沒有return語句,它總是返回None。您需要將print替換爲return