如何检查以下所有项目是否都在列表中?
问题内容:
我发现,存在一个相关的问题,即如何查找列表中是否至少有一项:如何检查列表中
是否有以下一项?
但是,找到列表中是否存在所有项的最佳方式是什么?
搜索文档后,我发现此解决方案:
>>> 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'])