比较python列表中的2个对应元素并分别打印

时间:2018-11-05 16:14:53

标签: python python-3.x list

我有2个列表:

x=[[3, 'id1', 50],[1, 'id2', 34],[2, 'id3', 39],[5, 'id2', 26],[4,'id3', 23]]  
y=[5,6,4,4,3]

根据一个条件,假设我用x过滤了'id2',则得到的列表为[[1, 'id2', 34],[5, 'id2', 26]]
现在,我想在列表y中打印相应的值,在这种情况下将为[6,4] 我能够根据条件从第一个列表中筛选元素,但无法找到从第二个列表中获取相应数据的方法。
如何在python中完成?

1 个答案:

答案 0 :(得分:0)

使用zip同时遍历列表:

x = [[3, 'id1', 50],[1, 'id2', 34],[2, 'id3', 39],[5, 'id2', 26],[4,'id3', 23]]
y = [5,6,4,4,3]

lst = [b for a, b in zip(x, y) if a[1] == 'id2']
# [6, 4]

如果您同时需要xy列表的内容:

lst1, lst2 = zip(*[(a, b) for a, b in zip(x, y) if a[1] == 'id2'])

print(lst1)  # ([1, 'id2', 34], [5, 'id2', 26])
print(lst2)  # (6, 4)