我有两个匹配元素的列表。例如:
L1 = [A, B]
L2 = [1_A, i_X, i_Y, 2_A, x_B, y_B, z_B]
我希望将匹配因子分组到新列表中,如下所示:
match_grouplist = [[1_A, 2_A],[x_B, y_B, z_B]]
我试过了,
pull = []; tmp = []
for entry in range(len(L1)):
spp = L[entry]
for ele in L2:
if ele.split("_")[1] == spp:
tmp.append(ele)
pull.extend(tmp)
它只生成一个列表。任何人都可以建议如何将其列入清单?
先谢谢,
AP
答案 0 :(得分:1)
以下是使用列表推导的解决方案:
[ [e2 for e2 in L2 if e2.endswith('_'+e1)] for e1 in L1 ]
这意味着对于L1的每个元素e1,我们将查找以_e1结尾的L2元素,并将其返回。
结果为[['1_A', '2_A'], ['x_B', 'y_B', 'z_B']]