我想找到列表a
的最小值。我知道有一个像min()
这样的函数来查找值,但我想用for
- 循环来完成它。
我收到错误Index out of range
和if
- 声明,但我不知道原因。
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)
答案 0 :(得分:3)
当您在Python(for e in l:
)中迭代列表时,不会直接遍历索引而是遍历元素。所以你应该写:
for e in a:
if(e < tmp):
tmp = e
print(tmp)
答案 1 :(得分:2)
如前所述,您在元素上混合迭代并循环索引。已经提出了迭代元素的解决方案,因此为了完整性,我想编写另一个解决方案:
a = [18,15,22,25,11,29,31]
n = len(a)
tmp = a[0]
for i in range(n):
if(a[i] < tmp):
tmp = a[i]
print(tmp)
修改:根据以下评论将xrange
更改为range
。