![](/img/trans.png)
[英]How to conditionally append tuples from one list to another list of tuples?
[英]How to Remove tuples from list of tuples if exists in another one
A =[(('6X', 1),), (('6E', 4),), (('10X', 2),)]
B=['6E', '10X']
我想保留 A 中唯一具有 B 中存在的第一个元素的元素
a =[ (('6E', 4),), (('10X', 2),)]
代码:
a=[]
for r in range(0, len(A)):
# print(A[r][0][0])
for k in range(0, len(B)):
if A[r][0][0]==B[k]:
a=A[r][0]
a.append(a)
print( a)
如果您的示例数据涵盖了所有元组嵌入的可能性,那么一个简单的列表推导就可以解决问题:
a = [ ta for ta in A if ta[0][0] in B ]
[(('6E', 4),), (('10X', 2),)]
但是,如果您有更深/可变的嵌套级别,您可能需要 function 来获得第一个值:
def firstValue(T): return firstValue(T[0]) if isinstance(T,tuple) else T
a = [ ta for ta in A if firstValue(ta) in B ]
使用filter
功能。 您传递了一个 lambda 表达式,它为列表中的每个值解析为真/假。 解析为True
的值将传递到 output 列表。
a = list(filter(lambda x: x[0][0] in B, A))
print(a)
# Output
# [(('6E', 4),), (('10X', 2),)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.