簡體   English   中英

從列表中嵌入列表的列表中查找元素(Python)

[英]Finding elements from list in lists embedded in list (Python)

是否有任何簡單的 function 可以遍歷嵌入在 Python 列表中的列表? 我有一個清單

A = ["apple", "banana", "cherry"]

然后,我想檢查哪些元素可以在列表列表中找到

B = [["banana", "cherry", "pear"], ["banana"," orange']]

結果應該是這樣的: c = [["banana", "cherry"], ["banana"]]

謝謝你的幫助。

您可以通過列表理解來做到這一點:

[
   [ b
     for b in l # loop over items in the sub list
     if b in A] # Check in they are in the main list
   for l in B # Loop over the big list
]

這將保持正確的順序,並保留空列表

您可以遍歷列表 B 並進行集合交集,如果匹配則保留結果。 請注意,set 會打亂項目的順序。

C = []
for item in B:
    common = set(item).intersection(A)
    if len(common) > 0:
        C.append(list(common))

print(C) # [['banana', 'cherry'], ['banana']]

給定列表 A 和 B 中的迭代可以這樣做;

A = ["apple", "banana", "cherry"]

B = [["banana", "cherry", "pear"], ["banana","orange"]]

C = []
for i in B:
    C_temp = []
    for j in A:
        if j in i:
            C_temp.append(j)
    C.append(C_temp)
print(C)

C 的 Output;

[['banana', 'cherry'], ['banana']]

這里使用maplambdasetlist function 來遍歷列表:

A = ["apple", "banana", "cherry"]
B = [["banana", "cherry", "pear"], ["banana",'orange']]
C = list(map(lambda c: sorted(list(set(A).intersection(c))), B))

# [['banana', 'cherry'], ['banana']]

暫無
暫無

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

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