簡體   English   中英

如何檢查列表是否包含來自另一個列表子列表的項目? [等候接聽]

[英]How to check if a list contains items from another lists sublist? [on hold]

我知道這個問題已經在這里被問過好幾次了,我經歷了其中的大部分,但由於某種原因,我無法將這些解決方案用於我當前的問題。

我有一個包含 11 個子列表的列表: list_a = [[1,2,3],[2,3,4],[3,4,5].....[11,12,13]]

我還有一個在 1 到 13 范圍內隨機生成的長度為 9 的列表:

list_b = [1,4,7,8,2,3,8,9] 

我想創建一個 function 迭代 list_a 的子列表,並且僅當子列表中的所有項目都存在於 list_b 中時才返回 true。 我嘗試了“所有” function 但在我的情況下它似乎不起作用,因為它需要列表中的所有項目而不是子列表。

for i in list_a:
    if all(a in i for a in list_b):
       print ('Yes')

先感謝您。

你只是把你的all()邏輯扭曲了。 您需要檢查子列表中的每個項目是否在list_b中(而不是檢查list_b中的每個項目是否在子列表中)。

將您的all()邏輯更改為:

all(a in list_b for a in i)

順便說一句,如果您將list_b更改為set ,它會更有效率並簡化事情。

您的想法是正確的,但是您正在檢查 list_b 中的元素是否存在於list_b的子列表中,而您的要求list_a相反。 您可以在此處使用set操作:

>>> list_a = [[1,2,3],[2,3,4],[3,4,5],[11,12,13]]
>>> list_b = [1,4,7,8,2,3,8,9]
>>> all(set(a).issubset(set(list_b)) for a in list_a)
False

或者

>>> list_a = [[1,2,3],[2,3,4],[3,4,8]]
>>> all(set(a).issubset(set(list_b)) for a in list_a)
True

暫無
暫無

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

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