[英]Pythonic way of saying “if all of the elements in list 1 also exist in list 2”
我想僅當列表1中的所有元素也都存在於列表2中時(列表2是列表1的超集),才從if語句返回true。 編寫此代碼的最Python方式是什么?
您可以使用設置操作 :
if set(list1) <= set(list2):
#...
請注意,比較本身很快,但是將列表轉換為集合可能不會(取決於列表的大小)。
轉換為集合也會刪除所有重復項。 因此,如果您有重復的元素並且想要確保它們在其他列表中也是重復的,則使用集合將不起作用。
您可以使用內置的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(x in L2 for x in L1)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.