在列表中找到最小元素
我想找出列表 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)