我有两个列表:
A = [['67', '75', 'X'], ['85','72', 'V'], ['1','2', 'Y'], ['3','5', 'X', 'Y']]
B = ['X', 'Y']
我想创建第三个列表C
,该列表具有A
的子列表,这些子列表具有在B
(/或)上定义的元素。
C = [[67', '75', 'X'],['1','2', 'Y'], ['3','5', 'X', 'Y']]
我尝试过:
C = [i for i in B if i in A]
但是没有用,我得到一个空的C列表。请让我知道获得C的最佳方法是什么。
答案 0 :(得分:2)
使用列表理解来检查B
中的任何元素是否在A
中:
A = [['67', '75', 'X'], ['85','72', 'V'], ['1','2', 'Y'], ['3','5', 'X', 'Y']]
B = ['X', 'Y']
C = [x for x in A if any(y in x for y in B)]
# [['67', '75', 'X'], ['1', '2', 'Y'], ['3', '5', 'X', 'Y']]
答案 1 :(得分:0)
C = [y for y in A for x in B if x in y]
这应该可以解决问题。
答案 2 :(得分:0)
您还可以使用此:
C = list()
for i in A:
if B[0] in i or B[1] in i:
C.append(i)
答案 3 :(得分:0)