【问题标题】:"What does this mean: key=lambda x: x[-1] ?"“这是什么意思:key=lambda x: x[-1]?”
【发布时间】: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)]

【问题讨论】:

    标签: python sorting lambda key


    【解决方案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])会发生什么?它乘以什么?
    • @KarthikReddy 它将按通过将last element 乘以second to the last element 获得的数量进行排序(在大小为2 元组的情况下,second 乘以first
    【解决方案2】:

    您正在按每个元组的最后一个元素排序(即按 4、5、1 而不是按 10、3、7 等)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-24
      • 2019-04-24
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 2020-03-18
      • 2021-08-02
      • 2015-03-24
      相关资源
      最近更新 更多