僅當列表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. 返回表1中的所有列和表2中的一列
- 9. Python - 選擇列表中的所有元素列表
- 10. 蟒蛇,檢查是否在列表1的所有元素都比列表2
- 11. Python:替換列表中的元素(#2)
- 12. 如何列出長列表格式中的所有元素?
- 13. 2列出,如果列表1的元素X具有Y類,添加類X元素列表第二
- 14. Prolog中的子列表中的所有元素的列表
- 15. 如何檢查列表2是否包含所有列表1元素?
- 16. Pythonic方式來翻轉列表/元組
- 17. Python:將列表中的所有元素相乘,但先減1 1.
- 18. 如何在python列表中添加列表中的元素?
- 19. 結合列表中的所有元素
- 20. 評估一個列表中的所有元素的表達式
- 21. 選擇表1中的所有列和表2中按列分組的一列
- 22. python:如何從2列表中刪除值,基於1列表中的內容
- 23. 什麼是計算列表中元素出現的pythonic方法?
- 24. 排序列表 - pythonic方式
- 25. 減去和劃分Python中的列表中的所有元素
- 26. 檢查列表元素是否存在於另一個列表的元素中
- 27. 如何從列表1創建一個新的列表 - 列表2在Python中
- 28. python從列表中刪除基於其他列表的元素
- 29. 如果記錄不存在於表1中,則更新表2,否則如果記錄存在更新表2具有來自表1的列
- 30. Python的替換列表中的元素在2所列出,在子的指數在第三列表
如果列表是'[1,1,2]'和'[1,2,3]',該怎麼辦? –
Python中的'set's是* AWESOME *。 – cwallenpoole
@Gabi這意味着元素1和元素2包含在集合{1,2,3}中。它應該(並確實)返回true。 – cwallenpoole