仅当列表1中的所有元素也存在于列表2中时,我想从if语句返回true(列表2是清单1的超集)。什么是写这个最pythonic的方式?Pythonic说“如果列表1中的所有元素也存在于列表2中”的Python方式
回答
您可以使用set operations:
if set(list1) <= set(list2):
#...
注意,比较本身是快,但转换列表来台可能不会(取决于列表的大小)。
转换为一个集合也会删除任何重复。因此,如果您有重复的元素,并且希望确保它们在另一个列表中也是重复的,则使用集合将不起作用。
,您可以使用内置的所有()函数:
if all(x in sLVals for x in fLVals):
# do something
在使用组认为你可以看看difference method据我知道的情况是相当快捷的方式:
if set(fLVals).difference(sLVals):
# there is a difference
else:
# no difference
请注意,这是'O(N^2)'的运行时间。特别是'sLVals中的x将会很慢(线性搜索)。 –
+1适用于不需要大量额外存储的解决方案。 –
谢谢,但我认为所有的方法都可以使用,但不确定,但例如设置不能用于列表等等。 –
可以是set.issuperset
或all(x in L2 for x in L1)
。
这人来直出的good folks at MIT:
from operator import and_
reduce(and_, [x in b for x in a])
我试图找到他们张贴的6.01类大约一年前的"readings.pdf"
...但我无法找到它了。
转到我的档案并发给我一封电子邮件,我会将.pdf发送给您,以了解此示例。这本书非常好,但它似乎不再是课堂的一部分。
- 1. 列表2中列表1的Python count元素发生
- 2. 检查列表中的元素是否存在于python列表的元素中
- 3. 将列表列表中的所有元素浮在python
- 4. 即使元素存在于Python中的列表中也存在值错误
- 5. 如何删除列表中的列表,如果一个列表中的元素存在于另一列表中
- 6. 有条件替换与列表2元素列表1元素
- 7. 列表1中的每个元素与列表2中的所有列表的总和
- 8. Python - 选择列表中的所有元素列表
- 9. Python:替换列表中的元素(#2)
- 10. 如何列出长列表格式中的所有元素?
- 11. 2列出,如果列表1的元素X具有Y类,添加类X元素列表第二
- 12. 如果字符串在列表中,打印列表的所有元素?
- 13. Pythonic方式来翻转列表/元组
- 14. Python:将列表中的所有元素相乘,但先减1 1.
- 15. 评估一个列表中的所有元素的表达式
- 16. 什么是计算列表中元素出现的pythonic方法?
- 17. 排序列表 - pythonic方式
- 18. 减去和划分Python中的列表中的所有元素
- 19. python从列表中删除基于其他列表的元素
- 20. 如果记录不存在于表1中,则更新表2,否则如果记录存在更新表2具有来自表1的列
- 21. 通过列表元素递归,列表元素也可以有列表
- 22. 增加每个列表元素在所有可能的方式
- 23. 在Python中以所有可能的方式在列表元素之间插入一些相同的新元素
- 24. 在列表的列表中的元素在python
- 25. Python:在循环列表中删除列表中的元素
- 26. Python:列表的列表 - 存在的元素
- 27. 如何找到python中相同的元组列表中的所有元素?
- 28. XML所有元素列表
- 29. Pythonic从SQL表结构加载列表的方式python 3.x
- 30. 如何采取相同的索引元素从列表中有2所列出
如果列表是'[1,1,2]'和'[1,2,3]',该怎么办? –
Python中的'set's是* AWESOME *。 – cwallenpoole
@Gabi这意味着元素1和元素2包含在集合{1,2,3}中。它应该(并确实)返回true。 – cwallenpoole