假设我有一个整数列表,如下所示:
l = [7,3,9,6,0,4]
列表的两端都有几率和几率。从左边开始,奇数首先出现,然后是偶数。我想在不利用任何其他列表的情况下就位,对偶数进行排序,如果可能的话,只能使用sort()方法。我尝试了以下方法:
l[0:oddCtr].sort() # to sort the odds
l[oddCtr:].sort() # to sort the evens
其中,oddCtr是列表中的几率。但这没有得到任何答案。请帮忙。
答案 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]