如何对整数列表的一部分进行排序?

时间:2019-08-13 16:57:31

标签: python python-3.x list sorting

假设我有一个整数列表,如下所示:

l = [7,3,9,6,0,4]

列表的两端都有几率和几率。从左边开始,奇数首先出现,然后是偶数。我想在不利用任何其他列表的情况下就位,对偶数进行排序,如果可能的话,只能使用sort()方法。我尝试了以下方法:

l[0:oddCtr].sort() # to sort the odds 
l[oddCtr:].sort() # to sort the evens

其中,oddCtr是列表中的几率。但这没有得到任何答案。请帮忙。

2 个答案:

答案 0 :(得分:2)

这将就地使用list.sort()

l = [7,3,9,6,0,4]
l.sort(key=lambda k: (not k%2, k))
print(l)

打印:

[3, 7, 9, 0, 4, 6]

答案 1 :(得分:1)

.sort()到位排序...您可以使用sorted()函数对每个切片进行排序并将它们重新添加在一起

l = [7,3,9,6,0,4]
oddCtr = 3
result = sorted(l[0:oddCtr]) + sorted(l[oddCtr:])
print(result)
  

[3, 7, 9, 0, 4, 6]

相关问题