[英]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.