python - 在字符串中的数组中查找任何值的出现并打印它

标签 python

我知道这些会非常简单,但它对我不起作用。

INDICATORS = ['dog', 'cat', 'bird']
STRING_1 = 'There was a tree with a bird in it'
STRING_2 = 'The dog was eating a bone'
STRING_3 = "Rick didn't let morty have a cat"


def FindIndicators(TEXT):
    if any(x in TEXT for x in INDICATORS):
        print x # 'x' being what I hoped was whatever the match would be (dog, cat)

预期输出:

FindIndicators(STRING_1)
# bird

FindIndicators(STRING_2)
# dog

FindIndicators(STRING_3)
# cat

相反,我得到了“x”的未解决引用。我有一种感觉,我一看到答案就会去办公 table 。

最佳答案

您误解了 any() 的工作原理。它消耗你给它的任何东西并返回 True 或 False。 x 之后不存在。

>>> INDICATORS = ['dog', 'cat', 'bird']
>>> TEXT = 'There was a tree with a bird in it'
>>> [x in TEXT for x in INDICATORS]
[False, False, True]
>>> any(x in TEXT for x in INDICATORS)
True

改为这样做:

>>> for x in INDICATORS:
...     if x in TEXT:
...         print x
...
bird

关于python - 在字符串中的数组中查找任何值的出现并打印它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40600301/

相关文章:

python - 如何从类方法中打印带有 `yield` 的类的字符串静态成员

python - 有没有办法在 argparse 中添加一个已经创建的解析器作为子解析器?

python - 为什么 Django 使用元组的元组来存储静态字典,我应该这样做吗?

python - DateTimeField 中的 Django 和微秒差异

python - 如何使用 django.views.generic.date_based.archive_index 获取前五个对象?

python - Python 中列表中值的绝对值

python - 我该如何解决这个错误? Gtk-WARNING ** : GModule . .. 初始化检查失败:GLib 版本太旧(微不匹配)

python - 类型错误 : train_test_split() got an unexpected keyword argument 'test_size'

javascript - 使用 Python 抓取并登录 Angular webabb

python - 如何计算 pandas 中重新采样的多索引数据帧