首页 > 解决方案 > 在python中比较list中的2个对应元素并分别打印

问题描述

我有 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中完成?

标签: pythonpython-3.xlist

解决方案


用于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)

推荐阅读