簡體   English   中英

用Python方式表示“如果列表1中的所有元素也存在於列表2中”

[英]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.issupersetall(x in L2 for x in L1)

這是來自麻省理工學院好人

from operator import and_
reduce(and_, [x in b for x in a])

我試圖找到大約一年前他們為6.01課程發布的"readings.pdf" ...但是我找不到了。

轉到我的個人資料並給我發送電子郵件,我將在獲得此示例的地方將.pdf發送給您。 這是一本非常好的書,但是它似乎不再是課程的一部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM