【问题标题】:conditionally print out lines in python有条件地打印出python中的行
【发布时间】:2016-07-23 17:14:48
【问题描述】:

我有一个字符串列表。我希望打印出列表中满足条件的字符串。名单如下:

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]

正确的做法是什么?谢谢!!

【问题讨论】:

标签: python string generator


【解决方案1】:

应该直截了当:

>>> 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']

【讨论】:

    【解决方案2】:

    因为您的函数没有返回语句,所以它总是返回None。您需要将print 替换为return

    【讨论】:

      猜你喜欢
      • 2022-07-07
      • 2012-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-10
      • 1970-01-01
      • 1970-01-01
      • 2017-12-08
      相关资源
      最近更新 更多