Сравнение двух элементов списка с использованием фильтра - PullRequest
1 голос
/ 27 марта 2020

У меня есть два списка чисел:

l1 = [12, 3, 4, 5, 7]
l2 = [ 6, 8, 4, 2, 4] 

Я хочу получить все элементы из l1, которые больше элементов из l2 (поэлементное сравнение)

Пока я только достиг

results = list(map(operator.gt,l1,l2)

, что возвращает мне список [True,False,...]. Но я хочу сами значения.

Я хотел бы сделать это без каких-либо для l oop спасибо. Я думал о filter() или itertools()

Спасибо

1 Ответ

2 голосов
/ 27 марта 2020

вы можете использовать понимание списка:

[a for a, b in zip(l1, l2) if a > b]

или вы можете использовать:

from operator import gt, itemgetter

list(map(itemgetter(1), filter(itemgetter(0), zip(map(gt, l1, l2), l1))))
...