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
时,它会被耗尽(空)(除了给出错误的最大值)。
您应该预先计算最大值(避免重新计算),然后您还可以遍历 enumerate
d 数据:
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_]
我是一名优秀的程序员,十分优秀!