簡體   English   中英

Python enumerate(),float對象不可迭代

[英]Python enumerate(), float object is not iterable

我有一個列表a ,然后使用max(a)來獲取最大值。 下一步,我嘗試使用enumerate()獲得最大值的第一個位置。 但是它注意到我只能將enumerate()用於int列表嗎? 浮動列表怎么樣? 有什么辦法可以在浮點數(也有整數)列表中獲得最大值的第一位置? 非常感謝

a = [1.5, 1.8, 3.1, 4.2, 5.5, 3.2, 4, 2, 1, 5.5, 3, 2.7]
b = max(a)
maxIndex = [i for i, j in enumerate(b) if j == b][0]

追溯(最近一次呼叫最近):TypeError中的文件“”,第1行:“ float”對象不可迭代

首先,我認為您打算使用enumerate(a)而不是enumerate(b) ,因為b只是最大浮點數。

其次,您還可以執行以下操作:

maxIndex = a.index(b)

max(a)返回單個max(a)完全不返回列表(或任何可迭代的對象)。 因此,您不能在其上使用枚舉。

單線:

maxpos = max(enumerate(a), key=lambda p: p[1])[0]

你有錯字

maxIndex = [i for i, j in enumerate(a) if j == b][0]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM