【问题标题】:Sorting a list in python from the second element on从第二个元素开始对python中的列表进行排序
【发布时间】:2017-05-03 21:56:21
【问题描述】:

我想对一个列表进行排序,但我希望它不包括第一个元素。

例如:

a = ['T', 4, 2, 1, 3]

现在我希望对列表进行排序,但第一个元素应该保留在原来的位置:

a = ['T', 1, 2, 3, 4]

我知道这可以通过使用排序算法来完成,但有没有一种方法可以做到这一点,或者有更多的 pythonic 方法来做到这一点?

【问题讨论】:

    标签: python list sorting


    【解决方案1】:

    您可以对其进行切片,对尾随切片进行排序,然后将其连接起来:

    >>> a = a[:1] + sorted(a[1:])
    >>> a
    ['T', 1, 2, 3, 4]
    

    【讨论】:

      【解决方案2】:

      您可以通过切片分配来实现,将a 的切片替换为a 的排序切片:

      >>> a = ['T',4,2,1,3]
      >>> a[1:] = sorted(a[1:])
      >>> a
      ['T', 1, 2, 3, 4]
      

      【讨论】:

      • 你能解释一下对切片的赋值吗?
      • @PeterWood 我添加了一行描述它,OP 可以自行搜索该术语以找到详细解释它的答案(比我能做的好得多)。
      猜你喜欢
      • 2012-03-08
      • 1970-01-01
      • 2021-10-16
      • 1970-01-01
      • 2011-05-21
      • 1970-01-01
      • 1970-01-01
      • 2017-07-21
      • 1970-01-01
      相关资源
      最近更新 更多