【发布时间】:2014-08-03 10:27:35
【问题描述】:
我想找到列表a 的最小值。我知道有一个像min() 这样的函数来查找值,但我希望它与for-loop 一起工作。
我在if-Statement 中收到错误Index out of range,但我不知道为什么。
a = [18,15,22,25,11,29,31]
n = len(a)
tmp = a[0]
for i in a:
if(a[i] < tmp):
tmp = a[i]
print(tmp)
【问题讨论】:
-
因为
for a in i迭代列表的内容,不是 索引;a[18]导致IndexError。 -
附带说明,您可能希望将
print移到循环之外,而不是内部。否则,您将打印出迄今为止看到的所有最低数字,除了第一个(所以它会打印15,然后是11……或者,如果你给它[1, 2, 3, 4],它什么也不会打印)。 -
另外,不要在 if 条件周围加上括号。这是 Python,不是 C。
-
为什么人们对此投反对票并投票结束?这怎么不是编程问题?当然,这是一个新手问题,但这并没有错。
-
@abarnert 看到 "I get the error Index out of range... but I don't know why" 也有点令人失望找出正在使用的索引,使用
print可以在几秒钟内解决这个“问题”。