Сравните 2 соответствующих элемента в списке в Python и распечатайте их отдельно - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть 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 голосов
/ 05 ноября 2018

Используйте 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]

Если вам нужно содержимое списков x и y:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...