python式的说法;如果列表1中的所有元素也存在于列表2中;
仅当列表1中的所有元素也存在于列表2中(列表2是列表1的超集)时,我才希望从if语句返回true。写这篇文章的最具python风格的方式是什么?您可以使用:python式的说法;如果列表1中的所有元素也存在于列表2中;,python,Python,仅当列表1中的所有元素也存在于列表2中(列表2是列表1的超集)时,我才希望从if语句返回true。写这篇文章的最具python风格的方式是什么?您可以使用: 如果设置(列表1)则可以使用内置的all()函数: if all(x in sLVals for x in fLVals): # do something 在使用集合的情况下,据我所知,您可以查看一下,这是一种非常快速的方法: if set(fLVals).difference(sLVals): # there is a
如果设置(列表1)则可以使用内置的all()函数:
if all(x in sLVals for x in fLVals):
# do something
在使用集合的情况下,据我所知,您可以查看一下,这是一种非常快速的方法:
if set(fLVals).difference(sLVals):
# there is a difference
else:
# no difference
set.issuperset
或all(L2中的x代表L1中的x)
这一个直接来自:
我试图找到一年前他们为6.01课程发布的“readings.pdf”
,但我再也找不到了
请转到我的个人资料并向我发送电子邮件,我将向您发送获得此示例的.pdf文件。这是一本非常好的书,但它似乎不再是类的一部分。如果列表是[1,1,2]
和[1,2,3]
?Python中的set
非常棒。@Gabi这意味着元素1和2包含在set{1,2,3}中。它应该(并且确实)返回true。这不需要对每个列表进行重复存储吗?@Gabi-Huh?如果列表A的所有元素都是在列表B中找到的,您可以正确地声明B是A的超集。这就是OP所要求的。请注意,它的运行时间是O(N^2)
。特别是SLVAL中的x
将很慢(线性搜索)。+1用于不需要大量额外存储的解决方案。谢谢,但我认为也可以使用所有方法,不确定,但例如set不能用于dict等列表。
if set(fLVals).difference(sLVals):
# there is a difference
else:
# no difference
from operator import and_
reduce(and_, [x in b for x in a])