Python 在字符串中搜索几个选项(如果..in)

Python 在字符串中搜索几个选项(如果..in),python,Python,所以我要做的是检查字符串是否包含许多选项中的一个。 假设我有一个列表[“瓶子”、“相机”、“蛋糕”],我试图检查字符串是否包含列表中的一个选项 我知道可以使用 if "bottle" in string..., 但是我如何在几乎没有选择的情况下做同样的事情呢 我希望我能把我的问题说清楚,谢谢!:) 您可以使用: 您可能需要拆分以避免出现类似foo处于foobarst.split() any将在字符串中找到单词列表中的任何单词时短路。您可以使用: 您可能需要拆分以避免出现类似foo处于fooba

所以我要做的是检查字符串是否包含许多选项中的一个。 假设我有一个
列表[“瓶子”、“相机”、“蛋糕”]
,我试图检查字符串是否包含列表中的一个选项

我知道可以使用

if "bottle" in string...,
但是我如何在几乎没有选择的情况下做同样的事情呢

我希望我能把我的问题说清楚,谢谢!:)

您可以使用:

您可能需要拆分以避免出现类似
foo
处于
foobar
st.split()

any
将在字符串中找到单词列表中的任何单词时短路。

您可以使用:

您可能需要拆分以避免出现类似
foo
处于
foobar
st.split()

any
将在字符串中找到单词列表中的任何单词时短路。

您可以使用:

测试是否
选项
给定项目到测试
的超集,而可用于查看要测试的项目中是否至少使用了
选项
集中的一个项目

即使
给定的\u项到\u测试本身不是一个集合,而只是一个列表或元组,这种方法仍然有效:

>>> options = {'bottle', 'camera', 'cake'}
>>> given_items_to_test = ['bottle']
>>> options.issuperset(given_items_to_test)
True
>>> given_items_to_test = ['bike']
>>> options.issuperset(given_items_to_test)
False
>>> given_items_to_test = ['bottle', 'camera']
>>> options.issuperset(given_items_to_test)
True
>>> given_items_to_test = ['bottle', 'camera', 'bike']
>>> options.issuperset(given_items_to_test)
False
>>> options.intersection(given_items_to_test)
set(['camera', 'bottle'])
您可以使用:

测试是否
选项
给定项目到测试
的超集,而可用于查看要测试的项目中是否至少使用了
选项
集中的一个项目

即使
给定的\u项到\u测试本身不是一个集合,而只是一个列表或元组,这种方法仍然有效:

>>> options = {'bottle', 'camera', 'cake'}
>>> given_items_to_test = ['bottle']
>>> options.issuperset(given_items_to_test)
True
>>> given_items_to_test = ['bike']
>>> options.issuperset(given_items_to_test)
False
>>> given_items_to_test = ['bottle', 'camera']
>>> options.issuperset(given_items_to_test)
True
>>> given_items_to_test = ['bottle', 'camera', 'bike']
>>> options.issuperset(given_items_to_test)
False
>>> options.intersection(given_items_to_test)
set(['camera', 'bottle'])

非常感谢你,伙计!:)非常感谢你,伙计!:)我正在尝试检查字符串是否包含列表中的一个选项。:因此我猜测
set(options)。交叉点(the_string.split())
就足够了,它没有描述的行为;这是在检查他们的字符串是否只包含单词列表中的单词。@HaldeanBrown:啊,对不起,误读了你的评论。添加了交叉选项。@JonClements:是的,你是对的,我不清楚。我正在尝试检查字符串是否包含列表中的选项之一。:所以我猜
set(options)。交叉(the_string.split())
足够了,这没有描述的行为;这是在检查他们的字符串是否只包含单词列表中的单词。@HaldeanBrown:啊,对不起,误读了你的评论。添加了交叉点选项。@JonClements:是的,你是对的,我不清楚。
options = {'bottle', 'camera', 'cake'}

if options.issuperset(given_items_to_test):
    # all items in given_items_to_test are found in options

if options.intersection(given_items_to_test):
    # at least one item in given_items_to_test is found in options
>>> options = {'bottle', 'camera', 'cake'}
>>> given_items_to_test = ['bottle']
>>> options.issuperset(given_items_to_test)
True
>>> given_items_to_test = ['bike']
>>> options.issuperset(given_items_to_test)
False
>>> given_items_to_test = ['bottle', 'camera']
>>> options.issuperset(given_items_to_test)
True
>>> given_items_to_test = ['bottle', 'camera', 'bike']
>>> options.issuperset(given_items_to_test)
False
>>> options.intersection(given_items_to_test)
set(['camera', 'bottle'])