Python 使用for循环查找列表中出现的所有最小值
抱歉,如果已经有人问过这个问题,但我似乎找不到我想要的答案,他们都使用了我们还不允许使用的工具。 问题是我必须使用for循环遍历列表,找到最小值,然后返回该值的索引。我同意的那一部分,我的问题是如何让程序返回所有出现的最小值 限制 我不能使用枚举或其他类似的函数,我可以使用min函数,但就是这样,它必须在for循环中完成 任何帮助都将不胜感激,谢谢Python 使用for循环查找列表中出现的所有最小值,python,list,for-loop,min,Python,List,For Loop,Min,抱歉,如果已经有人问过这个问题,但我似乎找不到我想要的答案,他们都使用了我们还不允许使用的工具。 问题是我必须使用for循环遍历列表,找到最小值,然后返回该值的索引。我同意的那一部分,我的问题是如何让程序返回所有出现的最小值 限制 我不能使用枚举或其他类似的函数,我可以使用min函数,但就是这样,它必须在for循环中完成 任何帮助都将不胜感激,谢谢 n = [1, 2, 3, -50, -60, 0, 6, 9, -60, -60] for i in n: min_val = []
n = [1, 2, 3, -50, -60, 0, 6, 9, -60, -60]
for i in n:
min_val = []
item = min(n)
item_index = n.index(item)
min_val.append(item_index)
print(min_val)
我假设这是python,所以可以使用numpy
将numpy导入为np
n=np.数组([1,2,3,-50,-60,0,6,9,-60,-60])
searchKey=-60
item_index=np.其中(n==searchKey)[0]
item_index=>array([4,8,9])
如果您事先不知道最小值,可以使用如下for循环:
minval=n[0]
对于n中的i:
如果i
然后用上面的minval
替换searchKey
免责声明:n属于np.array not list类型,不确定这对您是否重要,但如果是这样,我可以发布一个不使用enumerate的不那么雄辩的列表解决方案。以下内容将在一行中完成工作
min_val_idxs = [ x for x in range(len(n)) if n[x] == min(n)]
对循环使用:
- 创建一个空列表,
索引
- 这是在循环之前/之外完成的,否则每次迭代都会重置列表
- 使用
为范围内的i(len(x)):
创建循环,该循环基本上遍历索引位置列表[0,1,2,3,…,len(x)-1]
对于in n中的i:
只需迭代列表中的每个值
- 在循环中,将任何
i
添加到列表中,其中x[i]
与min(x)
匹配
def get_索引(x:list)->列表:
索引=列表()
最小值=最小值(x)
对于范围内的i(len(x)):
如果x[i]==最小值:
索引.附加(i)
回报指数
打印(获取索引(n))
>>> [4, 8, 9]
以下是解决此问题的方法:
n = [1, 2, 3, -50, -60, 0, 6, 9, -60, -60]
for i in n:
min_count = n.count(min(n)) # getting a count of the number of minimum values
min_value = min(n)
min_index_list = []
for j in range(min_count):
min_index = n.index(min_value)
min_index_list.append(min_index)
n[min_index] += 1
break
print(min(n) - 1, min_index_list)
这回答了你的问题吗?