Python 循环遍历两个列表,将一个列表与另一个列表进行比较并返回值
我有两个列表要比较。我想循环列出一个值,并将其与清单2中的值进行比较。我希望根据列表1中的值是否小于或等于列表2中的值返回1、0或-1Python 循环遍历两个列表,将一个列表与另一个列表进行比较并返回值,python,list,loops,Python,List,Loops,我有两个列表要比较。我想循环列出一个值,并将其与清单2中的值进行比较。我希望根据列表1中的值是否小于或等于列表2中的值返回1、0或-1 list_one = [0,2,5,0,3,7] list_two = [0,3] #loop through list one values for j in list_one: #loop through list two values for k in list_two: if float(j) <
list_one = [0,2,5,0,3,7]
list_two = [0,3]
#loop through list one values
for j in list_one:
#loop through list two values
for k in list_two:
if float(j) <= k:
value = 1
break
elif float(j) <= k:
value = 0
break
else:
value = -1
print(value)
例如,列表1中的值2将被分配一个值0,因为它大于0而小于列表2中的3
list_one = [0,2,5,0,3,7]
list_two = [0,3]
#loop through list one values
for j in list_one:
#loop through list two values
for k in list_two:
if float(j) <= k:
value = 1
break
elif float(j) <= k:
value = 0
break
else:
value = -1
print(value)
预期成果:
1
0
-1
1
0
-1
在您的逻辑中有一些问题,我在下面的代码中对它们进行了更改
list_one = [0,2,5,0,3,7]
list_two = [0,3]
#loop through list one values
for j in list_one:
#loop through list two values
value=0
for k in list_two:
if float(j) <= k:
value += 1
break
elif float(j) == k:
value += 0
break
else:
value += -1
if value > 1:
value = 1
elif value < -1:
value = -1
print(value)
list_one=[0,2,5,0,3,7]
列表二=[0,3]
#循环列出一个值
对于清单1中的j:
#循环列出两个值
值=0
对于列表2中的k:
如果浮动(j)1:
值=1
elif值<-1:
值=-1
打印(值)
让我知道如果这为您解决了问题,问题陈述不是很清楚,我已根据我对问题陈述的解释修改了此代码您的逻辑中有一些问题,我已在下面随附的代码中更改了它们
list_one = [0,2,5,0,3,7]
list_two = [0,3]
#loop through list one values
for j in list_one:
#loop through list two values
value=0
for k in list_two:
if float(j) <= k:
value += 1
break
elif float(j) == k:
value += 0
break
else:
value += -1
if value > 1:
value = 1
elif value < -1:
value = -1
print(value)
list_one=[0,2,5,0,3,7]
列表二=[0,3]
#循环列出一个值
对于清单1中的j:
#循环列出两个值
值=0
对于列表2中的k:
如果浮动(j)1:
值=1
elif值<-1:
值=-1
打印(值)
让我知道如果这为您解决了问题,问题陈述不是很清楚,我已经根据我对问题陈述的解释修改了此代码#除了逻辑错误之外,此代码示例中最大的错误是您对#list#two的混淆使用。显然,列表2必须是一个2元素列表:[最小值,最大值]。任何其他结构都很难理解。如果您愿意,请将其作为一个列表保存,但在开始时,请按如下方式解码列表二:
#然后通过列表_one循环j并应用此逻辑:
if j < min_val:
value = 1
elif j > max_val:
value = -1
else:
value = 0
如果j最大值:
值=-1
其他:
值=0
#所以基本上失去了第二个循环(k循环)。并且一定要删除float()#引用。#撇开逻辑错误不谈,这个代码示例中最大的错误是混淆了#list#u two的用法。显然,列表2必须是一个2元素列表:[最小值,最大值]。任何其他结构都很难理解。如果您愿意,请将其作为一个列表保存,但在开始时,请按如下方式解码列表二:
#然后通过列表_one循环j并应用此逻辑:
if j < min_val:
value = 1
elif j > max_val:
value = -1
else:
value = 0
如果j最大值:
值=-1
其他:
值=0
#所以基本上失去了第二个循环(k循环)。并且一定要删除float()#引用。您要检查两次相同的条件…?转换
float
的目的是什么?我想既然列表2中有两个值,它就必须循环两次。如果满足第一个条件,它将中断并结束循环,如果不满足,它将进入下一个条件,如果满足,它将中断,等等。。我猜这不是正确的想法。“浮点”是实际代码的产物,在本例中没有任何意义。你的elseif
条件与你的if
条件相同,因此永远不会执行。你检查了两次相同的条件…?转换浮点
的目的是什么?我一直在想列表2中有两个值,它必须循环两次。如果满足第一个条件,它将中断并结束循环,如果不满足,它将进入下一个条件,如果满足,它将中断,等等。。我猜这不是正确的想法。浮动是实际代码的产物,在本例中没有任何意义。你的elseif
条件与你的if
条件相同,因此永远不会执行。谢谢,这很有效,很有意义!下一次,我将尝试发布一些更清晰的问题陈述。谢谢,这很有效,很有意义!下一次,我将尝试发布一些更清晰的问题陈述。