繁体   English   中英

检查多个列表中是否存在字符串(python)

[英]Check if string present in multiple lists (python)

希望有人可以建议最有效的方法来检查所有三个给定列表中是否存在一组字符串,如果存在,请将 itemInAllLists 设置为 True。

以下是我要实现的目标的总体思路。

item = 'test-element'

list_a = ['a','random','test-element']
list_b = ['light','apple','table']
list_c = ['car','field','test-element','chair']

itemInAllLists = False

if item in [list_a] and item in [list_b] and item in [list_c]:
   itemInAllLists = True

看看 Python 的all内置函数,如果可迭代对象的所有元素都为真,它将返回True

如果您将所有列表放在一个组合列表中,您可以执行列表理解来检查每个列表。

all(item in all_lists for all_lists in [list_a, list_b, list_c])

更新

正如deceze提到的那样,您不必这样做,您正在做的事情也很有效,并且可能更容易阅读。 使用allany可能更适合更多列表或当您动态创建它们时。

为了使您的代码正常工作,您只需要删除括号以使语法正确:

if item in list_a and item in list_b and item in list_c:
    pass

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM