獲得項目數我只是提出以下問題:蟒蛇 - 從列表
Python - find integer closest to 0 in list
最好的答案是使用:min(lst, key=abs)
。
該代碼從列表中返回項目。
如何從列表中獲得項目號碼? (即2
代替-18
)
獲得項目數我只是提出以下問題:蟒蛇 - 從列表
Python - find integer closest to 0 in list
最好的答案是使用:min(lst, key=abs)
。
該代碼從列表中返回項目。
如何從列表中獲得項目號碼? (即2
代替-18
)
>>> lst = [237, 72, -18, 237, 236, 237, 60, -158, -273, -78, 492, 243]
>>> lst.index(min(lst, key=abs))
2
你需要增加與指數的列表:
min(enumerate(lst), key=lambda x: abs(x[1]))
它會返回指數和最接近到零值,如果你只使用[0]
需要索引。
在您的例子:
>>> example = [237, 72, -18, 237, 236, 237, 60, -158, -273, -78, 492, 243]
>>> min(enumerate(example), key=lambda x: abs(x[1]))
(2, -18)
>>> min(enumerate(example), key=lambda x: abs(x[1]))[0]
2
這是非常有效的(最壞情況下爲O(n));你也可以使用example.index(min(example, key=abs))
,但是在最壞的情況下(O(2n))必須經過兩次。
嘗試:
lst.index(min(lst, key=abs))
一種方法是找到你想要找的整數後,你可以用 「指數」 ......
result = min(lst, key=abs)
index = lst.index(result)
print(index) # prints 2
注意,這有通過兩次清單。 – 2012-08-12 17:23:28