我发现,有一个相关的问题,关于如何查找列表中是否存在至少一项:
How to check if one of the following items is in a list?
但是,找出所有项目是否都存在于列表中的最好的 Pythonic 方法是什么?
通过文档搜索我找到了这个解决方案:
>>> l = ['a', 'b', 'c']
>>> set(['a', 'b']) <= set(l)
True
>>> set(['a', 'x']) <= set(l)
False
其他解决方案是这样的:
>>> l = ['a', 'b', 'c']
>>> all(x in l for x in ['a', 'b'])
True
>>> all(x in l for x in ['a', 'x'])
False
但是在这里你必须做更多的输入。
还有其他解决办法吗?
最佳答案
<=
等运算符在 Python 中,通常不会被覆盖以表示与“小于或等于”明显不同的东西。标准库这样做很不寻常——对我来说它闻起来像旧 API。
使用等效且名称更明确的方法 set.issubset
.请注意,您不需要将参数转换为集合;如果需要,它会为您执行此操作。
set(['a', 'b']).issubset(['a', 'b', 'c'])
关于list - 如何检查以下所有项目是否都在列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3931541/