Python 读入一个自然数列表,把所有的奇数移动到所有偶数的前面。保持奇数或者偶数的相对顺序不变。打印结果列表。
时间: 2024-04-29 09:22:43 浏览: 48
可以使用两个指针,一个指向列表的开头,一个指向结尾。遍历列表,如果发现当前数是奇数,则将它与开头指针指向的数交换位置,并将开头指针向后移动一位;如果当前数是偶数,则将它与结尾指针指向的数交换位置,并将结尾指针向前移动一位。直到开头指针和结尾指针相遇,遍历结束。
以下是示例代码:
```
nums = list(map(int, input().split()))
left = 0
right = len(nums) - 1
while left < right:
if nums[left] % 2 == 0 and nums[right] % 2 == 1:
nums[left], nums[right] = nums[right], nums[left]
left += 1
right -= 1
elif nums[left] % 2 == 1:
left += 1
elif nums[right] % 2 == 0:
right -= 1
print(nums)
```
相关问题
Python编写程序,输入一个包含若干整数的列表,输出一个新列表,新列表中奇数在前偶数在后,并且奇数之间相对顺序不变,偶数之间的相对顺序也不变。
可以使用双指针法,一个指针从前往后找偶数,一个指针从后往前找奇数,然后交换它们的位置。代码如下:
```
def odd_even_list(nums):
left, right = 0, len(nums) - 1
while left < right:
while left < right and nums[left] % 2 == 1:
left += 1
while left < right and nums[right] % 2 == 0:
right -= 1
nums[left], nums[right] = nums[right], nums[left]
return nums
```
这个函数接受一个整数列表作为参数,返回一个新的列表,其中奇数在前偶数在后,且奇数之间相对顺序不变,偶数之间的相对顺序也不变。
python输入一个自然数,判断它是奇数还是偶数
可以使用取模运算符(%)来判断一个自然数是奇数还是偶数。如果一个数除以2的余数为0,则它是偶数;如果余数为1,则它是奇数。
下面是使用Python编写的代码:
```
num = int(input("请输入一个自然数:"))
if num % 2 == 0:
print(num, "是偶数")
else:
print(num, "是奇数")
```
首先,使用`input()`函数获取用户输入的自然数,并使用`int()`函数将输入的字符串转换为整数类型。然后,使用`if`语句和取模运算符判断输入的数是奇数还是偶数,并输出相应的提示信息。
阅读全文