【发布时间】:2017-05-03 21:56:21
【问题描述】:
我想对一个列表进行排序,但我希望它不包括第一个元素。
例如:
a = ['T', 4, 2, 1, 3]
现在我希望对列表进行排序,但第一个元素应该保留在原来的位置:
a = ['T', 1, 2, 3, 4]
我知道这可以通过使用排序算法来完成,但有没有一种方法可以做到这一点,或者有更多的 pythonic 方法来做到这一点?
【问题讨论】:
我想对一个列表进行排序,但我希望它不包括第一个元素。
例如:
a = ['T', 4, 2, 1, 3]
现在我希望对列表进行排序,但第一个元素应该保留在原来的位置:
a = ['T', 1, 2, 3, 4]
我知道这可以通过使用排序算法来完成,但有没有一种方法可以做到这一点,或者有更多的 pythonic 方法来做到这一点?
【问题讨论】:
您可以对其进行切片,对尾随切片进行排序,然后将其连接起来:
>>> a = a[:1] + sorted(a[1:])
>>> a
['T', 1, 2, 3, 4]
【讨论】:
您可以通过切片分配来实现,将a 的切片替换为a 的排序切片:
>>> a = ['T',4,2,1,3]
>>> a[1:] = sorted(a[1:])
>>> a
['T', 1, 2, 3, 4]
【讨论】: