![](/img/trans.png)
[英]Python: How do I take user input and find the highest and lowest numbers?
[英]How do I find ALL the positions of the lowest numbers in a list? (python)
下面的代碼返回列表中第一個最小數字的位置。
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中進行操作?
您可以使用Python的預定義min
函數來獲取列表中的最小值,然后使用列表推導得到值的索引等於該最小值,如下所示:
xy = [50, 2, 34, 6, 4, 3, 1, 5, 2, 1, 10 ,1]
lowest = min(xy)
positions = [i for i, v in enumerate(xy) if v == lowest]
print(positions) # ==> [6, 9, 11]
這應該是CPU效率最高的解決方案,因為它只運行一次列表。 @Mr 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]
每當我們找到新的最小值時,我們清除結果列表並添加新的數字。 每當我們找到相同的數字時,我們將其添加到列表中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.