如何检查以下所有项目是否都在列表中?


问题内容

我发现,存在一个相关的问题,即如何查找列表中是否至少有一项:如何检查列表中
是否有以下一项?

但是,找到列表中是否存在所有项的最佳方式是什么?

搜索文档后,我发现此解决方案:

>>> 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'])