gpt4 book ai didi

python - 对列表中的奇数进行排序

转载 作者:太空宇宙 更新时间:2023-11-03 12:26:46 24 4
gpt4 key购买 nike

如何对整数列表中的奇数进行升序排序,但将偶数留在原来的位置?

例子:

sortArray([5, 3, 2, 8, 1, 4]) == [1, 3, 2, 8, 5, 4]

我的代码:

def sort_array(source_array):     
odd_numbers = [n for n in source_array if n%2!=0]
odd_numbers = sorted(odd_numbers)

如何将 source_array 中的奇数索引与 odd_numbers 中的奇数索引交换?

最佳答案

看起来你快到了——你可以让你排序的奇数成为一个可迭代的,并用原始偶数或下一个排序的奇数重新构建你的源列表,例如:

>>> data = [5, 3, 2, 8, 1, 4]
>>> odds = iter(sorted(el for el in data if el % 2))
>>> [next(odds) if el % 2 else el for el in data]
[1, 3, 2, 8, 5, 4]

关于python - 对列表中的奇数进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44461172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com