编写程序,输入一个包含若干整数的列表,输出一个新列表,新列表中奇数在前偶数在后,并且奇数之间的相对顺序不变,偶数之间的相对顺序也不变。
时间: 2023-04-22 21:03:34 浏览: 79
请编制函数Compute()分别计算出xx中偶数的个数even,奇数的平均值ave1,偶
可以使用两个指针,一个指向列表的开头,一个指向列表的结尾。遍历列表,如果指向开头的指针指向的数是奇数,则将其加入新列表的开头,并将指针向后移动一位;如果指向结尾的指针指向的数是偶数,则将其加入新列表的结尾,并将指针向前移动一位;否则,将指针向前或向后移动一位。直到两个指针相遇为止。最后得到的新列表就是符合要求的列表。
具体实现可以参考以下代码:
```python
def sort_list(lst):
new_lst = []
left, right = , len(lst) - 1
while left <= right:
if lst[left] % 2 == 1:
new_lst.insert(, lst[left])
left += 1
elif lst[right] % 2 == :
new_lst.append(lst[right])
right -= 1
else:
left += 1
right -= 1
return new_lst
```
例如,输入列表 `[1, 2, 3, 4, 5, 6, 7, 8, 9]`,输出新列表 `[1, 3, 5, 7, 9, 8, 6, 4, 2]`。
阅读全文