比较列表一的任何值是否大于列表一的任何值?

时间:2019-07-06 16:30:55

标签: python list

list1 = [39, 4, 6]
list2 = [0, 7, 6]
[x for x in list2 if x < any(list1)]

想要的结果:0、7、6(全部<39)
实际结果:0

编辑:如果

list2 = [0, 3, 6]

我想返回3,因为3是<7

4 个答案:

答案 0 :(得分:1)

您已亲自发布了解决方案。您希望所有项目都低于其他列表的最大

list1 = [39, 4, 6]
list2 = [0, 7, 6]
[x for x in list2 if x < max(list1)]

答案 1 :(得分:0)

Python的'any()'返回布尔值,请参见documentation。所以在这里,当它返回true时,any(list1)变为1,因此循环采用以下形式:

[x for x in list2 if x < 1]

结果为[0](仅0小于1)。

答案 2 :(得分:0)

如果要使用逻辑运算符解决它,请尝试以下操作:

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

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

结果:[0]

答案 3 :(得分:0)

只需比较每个列表的最大值,然后返回具有最低最大值的列表

 def comparelist(l1, l2):
        if max(l1)> max(l2):
            return l2
        else:
            return l1
 print(comparelist(list_1, list_2))