让v成为一个数字列表
v = [3,5,2,4,8,6,1]
为什么下面查找max元素及其索引的代码会出错?(“int”对象不可订阅)
reduce(lambda x,y: max(x[1],y[1]), enumerate(v))
另外,我知道还有其他方法可以做到,比如下面的方法,但是我想知道为什么前面的方法不起作用。
max(enumerate(v), key= lambda x: x[1])
结语
Simeon指出我的代码确实错了,因为lambda应该返回一个元组,而不是一个数字。理解了这一点,我的代码可以通过以下方式轻松修复:
reduce(lambda x,y: x[1]<y[1] and y or x, enumerate(v))
顺便说一下,这比
max(enumerate(v), key= lambda x: x[1])
目前没有回答
相关问题 更多 >
编程相关推荐