【发布时间】:2018-07-10 15:35:09
【问题描述】:
我知道a.sort(key=lambda x: x[1]) 表示它根据第二个元素进行排序。
但是x[-1]??
不应该只有x[0]和x[1]两种配置吗?
还是我遗漏了一些明显的东西?
让我们考虑a = [(10, 4), (3, 5), (7, 1)]
【问题讨论】:
我知道a.sort(key=lambda x: x[1]) 表示它根据第二个元素进行排序。
但是x[-1]??
不应该只有x[0]和x[1]两种配置吗?
还是我遗漏了一些明显的东西?
让我们考虑a = [(10, 4), (3, 5), (7, 1)]
【问题讨论】:
Python 能够从列表的end 中进行索引。因此,x[-1] 指的是最后一个元素,x[-2] 指的是倒数第二个元素,依此类推。
a.sort(key=lambda x: x[-1])
将按最后一个元素对a 进行排序。
>>> a = [(10, 4), (3, 5), (7, 1)]
>>> a.sort(key=lambda x: x[-1])
[(7, 1), (10, 4), (3, 5)]
【讨论】:
a.sort(key=lambda x: x[-1] * x[-2])会发生什么?它乘以什么?
last element 乘以second to the last element 获得的数量进行排序(在大小为2 元组的情况下,second 乘以first)
您正在按每个元组的最后一个元素排序(即按 4、5、1 而不是按 10、3、7 等)
【讨论】: