簡體   English   中英

在作為子集的集合列表中查找集合並選擇它們

[英]Finding sets in a list of sets that are subsets and select them

我只想從作為另一個集合的子集的集合列表中選擇那些集合,因此基本上是:

sets = [{1, 2, 3}, {6, 7, 8}]
s = {1, 2, 3, 4, 5, 6, 7}
list(compress(sets, [sub <= s for sub in sets]))

這有效,但首先評估列表理解然后使用壓縮感覺是錯誤的。 有沒有辦法直接索引集合,比如:

sets[[sub <= s for sub in sets]] ### This does not work!

嘗試這個:

[i for i in sets if all(j in s for j in i)]

測試:

In [226]: sets = [{1, 2, 3}, {6, 7, 8}, {1,2}, {3}, {7,1}, {7,8}, {8}]
In [227]: s = {1, 2, 3, 4, 5, 6, 7}

In [228]: [i for i in sets if all(j in s for j in i)]
Out[228]: [{1, 2, 3}, {1, 2}, {3}, {1, 7}]

暫無
暫無

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

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