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
答案 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))