首页 > 解决方案 > python - 如何在python列表中将更小的元素与更大的奇数元素交换?

问题描述

我有一个从 1 到 n 的元素列表, ( range(1, n + 1))

我应该如何将奇数更大的元素与偶数元素交换?

例如,如果我有一个包含元素[1,2,3]的列表,则所需的输出将是[1,3,2]因为 odd 3 大于 even 2 。

示例 2:

if list = [1,2,3,4,5]

所需的输出将是

[1,3,2,5,4] 

这里 2 将与 3 交换,4 将与 5 交换,但不会与 3 交换,因为 3 小于 4。

标签: pythonpython-3.xpython-2.7

解决方案


一个简单的 for 循环,用于修改列表:

l = list(range(1,10))

for i, n in enumerate(l):
    if i % 2 != 0 and i < len(l) - 1:
        l[i] = l[i+1]
        l[i+1] = n

在每个奇数索引处,元素与其后继元素交换位置。


推荐阅读