python表达式相关问题
data=[1,1,1,2,2,1,3,1]
print(max(range(len(data)), key=data.__getitem__))
运行结果为6,但是range(len(data))结果应该是零到七,取最大值为什么会出来六呢
range(len(data))结果应该是零到七,取最大值为什么会出来六呢
想弄清楚句法原理,谢谢!
关键你指定了key啊
这表示以什么样的值来决定“最大值”
如果没有key这个参数,max取出来的是range(len(data))的最大值,也就是7,但是key指定了data.__getitem__,那就去data这个列表里对应的索引来决定哪个是最大的,data[6]是7,最大,所以返回6
print(max(range(len(data)))