【发布时间】:2015-12-09 01:00:14
【问题描述】:
所以我有以下代码来查找 3 个给定值的最小数量,其中 abc,xyz,mnl 是包含要比较的值的列表:
for q , (a,b,c) in enumerate(zip(abc,xyz,mnl)):
print (a,b,c)
if int(a) < int(b) & int(a) < int(c):
print "a","\t",a
elif int(b) < int(a) & int(b) < int(c):
print "b","\t",b
elif int(c) < int(a) & int(c) < int(b):
print "c","\t",c
我得到了这个输出
('3137775', '-7589493', '-1419231')
('6199235', '-3810275', '-8726482')
('2649229', '-4119818', '3726604')
b -4119818
('-1960710', '2758796', '9426184')
a -1960710
问题是它在 2 次迭代时打印最小值为 'b' 并在打印之前跳过 3 次迭代。它在每次迭代中继续这样做,其中包含多个负值(-ve)作为'-7589493', '-1419231',我们可以在第一次迭代中看到。
为什么它不能打印每次迭代的最小值
【问题讨论】:
-
你的意思是
and而不是&;&不是逻辑and- 它是按位操作。 -
哦,问题出在操作员上
-
@Anjan 是的,尽管选择的方法并不出色。一开始就很复杂