Сравнение, если какие-либо значения из списка один больше, чем любое значение в другом? - PullRequest
0 голосов
/ 06 июля 2019
list1 = [39, 4, 6]
list2 = [0, 7, 6]
[x for x in list2 if x < any(list1)]

Требуются результаты: 0, 7, 6 (так как все <39) <br /> Фактический результат: 0

Редактировать: если

list2 = [0, 3, 6]

Я бы хотел вернуть 3, так как 3 <7 </p>

Ответы [ 4 ]

1 голос
/ 06 июля 2019

Вы разместили решение самостоятельно.Вы хотите, чтобы все элементы были ниже, чем max из другого списка:

list1 = [39, 4, 6]
list2 = [0, 7, 6]
[x for x in list2 if x < max(list1)]
0 голосов
/ 06 июля 2019

просто сравните максимум каждого списка и верните список с наименьшим максимумом

 def comparelist(l1, l2):
        if max(l1)> max(l2):
            return l2
        else:
            return l1
 print(comparelist(list_1, list_2))
0 голосов
/ 06 июля 2019

Если это было решено с помощью логических операторов, попробуйте это:

list1 = [39, 4, 6]
list2 = [0, 7, 6]

a = [x for x in list2 if all(x<y for y in list1)]

результат: [0]

0 голосов
/ 06 июля 2019

Python 'any ()' возвращает логическое значение, см. документация . Так что здесь, когда он возвращает true, any (list1) становится 1, поэтому цикл принимает вид:

[x for x in list2 if x < 1]

Что приводит к [0] (только 0 меньше 1).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...