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>
Вы разместили решение самостоятельно.Вы хотите, чтобы все элементы были ниже, чем max из другого списка:
list1 = [39, 4, 6] list2 = [0, 7, 6] [x for x in list2 if x < max(list1)]
просто сравните максимум каждого списка и верните список с наименьшим максимумом
def comparelist(l1, l2): if max(l1)> max(l2): return l2 else: return l1 print(comparelist(list_1, list_2))
Если это было решено с помощью логических операторов, попробуйте это:
list1 = [39, 4, 6] list2 = [0, 7, 6] a = [x for x in list2 if all(x<y for y in list1)]
результат: [0]
[0]
Python 'any ()' возвращает логическое значение, см. документация . Так что здесь, когда он возвращает true, any (list1) становится 1, поэтому цикл принимает вид:
[x for x in list2 if x < 1]
Что приводит к [0] (только 0 меньше 1).