[英]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']]
这里使用map
、 lambda
、 set
和list
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.