在列表中找到最小元素

0 投票
2 回答
1691 浏览
提问于 2025-04-18 15:48

我想找出列表 a 中最小的值。我知道有一个像 min() 这样的函数可以找到这个值,但我想用 for 循环来实现这个功能。可是我在使用 if 语句时遇到了一个错误,提示 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)

2 个回答

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

3

在Python中,当你遍历一个列表时(用for e in l:这样的写法),你不是在遍历列表的索引,而是直接遍历列表中的元素。所以你应该这样写:

for e in a:
    if(e < tmp):
        tmp = e
        print(tmp)

撰写回答