gpt4 book ai didi

python - 当我在循环之前使用枚举时,如何得到一个空列表?

转载 作者:太空宇宙 更新时间:2023-11-04 00:30:04 24 4
gpt4 key购买 nike

salary_data 是 python 中的列表。当我在如下循环中使用枚举函数时,一切顺利。

##salary_data = enumerate(salary_data)
max_label = [i for i,x in enumerate(salary_data) if x==max(salary_data)]
print max_label

但是当我像下面这样使用枚举函数时,我得到了一个空列表 salary_data,并且 ValueError: max() arg 是一个空序列。我不知道为什么。

salary_data = enumerate(salary_data)
max_label = [i for i,x in salary_data if x==max(salary_data)]
print max_label

最佳答案

enumerate(salary_data) 是一个迭代器,因为您将它包装在 enumerate 中。这意味着当您对其调用 max 时,它会被耗尽(空)(除了给出错误的最大值)。

您应该预先计算最大值(避免重新计算),然后您还可以遍历 enumerated 数据:

max_ = max(salary_data)  # avoids repeated maximum calculation in the loop
salary_data_enumerated = enumerate(salary_data) # other variable name, for readability
max_label = [i for i, x in salary_data_enumerated if x==max_]

关于python - 当我在循环之前使用枚举时,如何得到一个空列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46168017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com