找到列表中的最小元素

时间:2014-08-03 10:27:36

标签: python element

我想找到列表a的最小值。我知道有一个像min()这样的函数来查找值,但我想用for - 循环来完成它。 我收到错误Index out of rangeif - 声明,但我不知道原因。

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)

2 个答案:

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