下面的以下代码返回列表中第一个最低编号的位置。
xy = [50, 2, 34, 6, 4, 3, 1, 5, 2, 1, 10 ,1]
t=0
for i in range(len(xy)):
if xy[i]<xy[t]:
t=i
print(t)
out: 6
我想获得所有最低数字的位置。在这种情况下,应为6,9,11。如何在基本Python中进行操作?
答案 0 :(得分:4)
您可以使用Python的预定义this.settings = Object.assign({}, this.settings);
函数来获取列表中的最小值,然后使用列表理解来获取等于该最小值的值的索引,如下所示:
min
答案 1 :(得分:2)
这应该是CPU效率最高的解决方案,因为它只运行一次列表。 @Geek先生的解决方案在内存上应该稍微好一点,因为他的方式只会产生一个结果列表。
xy = [50, 2, 34, 6, 4, 3, 1, 5, 2, 1, 10 ,1]
min_val = sys.maxsize
result = []
for index, num in enumerate(xy):
if num < min_val:
min_val = num
result = [index]
elif num == min_val:
result.append(index)
结果现在包含[6, 9, 11]
只要找到新的最小值,我们就会清除结果列表并添加新的数字。只要我们找到相同的号码,就会将其添加到列表中。