对列表中的奇数进行排序

2023-11-21

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

Example:

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]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对列表中的奇数进行排序 的相关文章

随机推荐