检查元组是否包含列表中的任何元素python



我正在编写基于引理化的简单分类器,本质上我需要检查元组是否包含列表中的任何元素。简单示例:

>>> ['dog', 'bone'] in ('dog', 'cat', 'parrot')

返回False,而我需要它来返回True。最简单、最优雅的方法是什么?

任一:

any([val in ('dog', 'cat', 'parrot') for val in ['dog', 'bone']])

对于实际使用,不要在理解中声明列表和元组,因为这会无故浪费资源,你应该:

test_list = ['dog', 'bone']
available_items = ('dog', 'cat', 'parrot')
any([val in available_items for val in test_list])

另一种可能的解决方案:

set(['dog', 'bone']).intersection(set(('dog', 'cat', 'parrot'))) # Would return a non empty set if there is an intersection, which translates to true.
# Use case:
if set(['dog', 'bone']).intersection(set(('dog', 'cat', 'parrot'))):
print('intersection!')

最新更新