从第二个元素对python中的列表进行排序

时间:2017-05-03 21:56:22

标签: python list sorting

我想对列表进行排序,但我希望将其排序,排除第一个元素。

例如:

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

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

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

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

2 个答案:

答案 0 :(得分:3)

您可以通过切片分配来执行此操作,其中使用已分类的a切片替换a切片:

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

答案 1 :(得分:3)

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

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