You have an array of numbers.
Your task is to sort ascending odd numbers but even numbers must be on their places.
一组数列里面有偶数,有奇数,现在只对奇数排序,偶数位置不动
Zero isn’t an odd number and you don’t need to move it. If you have an empty array, you need to return it.
Example
sort_array([5, 3, 2, 8, 1, 4]) == [1, 3, 2, 8, 5, 4]
最佳解法:
def sort_array(arr):
odds = sorted((x for x in arr if x%2 != 0), reverse=True)
return [x if x%2==0 else odds.pop() for x in arr]