Python 检查多个值是否在列表中

使用 all() 函数检查列表中是否有多个值,例如 if all(value in my_list for value in multiple_values):。 如果所有指定值都在列表中,则 all() 函数将返回 True,否则返回 False。

my_list = ['one', 'two', 'three', 'four', 'five']

multiple_values = ['one', 'two', 'three']

if all(value in my_list for value in multiple_values):
    # ?️ this runs
    print('All of the values are in the list')
else:
    print('Not all of the values are in the list')

# ?️ True
print(all(value in my_list for value in multiple_values))

Python 检查多个值是否在列表中

我们使用生成器表达式来迭代多个值的集合。

在每次迭代中,我们检查列表中是否存在当前值并返回结果。

all() 内置函数将可迭代对象作为参数,如果可迭代对象中的所有元素都为真(或可迭代对象为空),则返回 True。

如果其中一个值不在列表中,则 all() 函数将短路返回 False。

my_list = ['one', 'two', 'three', 'four', 'five']

multiple_values = ['fifty', 'two', 'three']

if all(value in my_list for value in multiple_values):
    print('All of the values are in the list')
else:
    # ?️ this runs
    print('Not all of the values are in the list')

# ?️ False
print(all(value in my_list for value in multiple_values))

或者,我们可以使用 set() 类将值集合转换为集合对象,以便能够使用 issubset() 方法。

my_list = ['one', 'two', 'three', 'four', 'five']

multiple_values = ['one', 'two', 'three']


if set(multiple_values).issubset(my_list):
    # ?️ this runs
    print('All of the values are in the list')
else:
    print('Not all of the values are in the list')

# ?️ True
print(set(multiple_values).issubset(my_list))

set.issubset 方法测试集合中的每个元素是否都在提供的序列中。

仅当列表中存在所有指定值时,条件才计算为 True。