将列表中的奇数和偶数移动到奇数和偶数位置

2024-10-01 02:22:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个奇偶整数相等的列表。目标是修改列表,使其在奇数索引处具有奇数整数,在偶数索引处具有偶数整数。

我的方法是:

我找出偶数和奇数索引的数字。然后找出偶数索引处的奇数和奇数索引处的偶数。最后把放错地方的号码换掉。

x = [3, 2, 5, 6, 4, 7, 8, 9, 10, 11]
even_pos = []
odd_pos = []
for i in range(len(x)):
    if x[i] % 2 == 0:
        even_pos.append(i)
    else:
        odd_pos.append(i)

even_pos_with_odd = []
odd_pos_with_even = []

for j in range(len(even_pos)):
    if even_pos[j] % 2 != 0:
        even_pos_with_odd.append(j)
    if odd_pos[j] % 2 == 0:
        odd_pos_with_even.append(j)

for n in range(len(even_pos_with_odd)):
    temp =  x[odd_pos[odd_pos_with_even[n]]]
    x[odd_pos[odd_pos_with_even[n]]] = x[even_pos[even_pos_with_odd[n]]]
    x[even_pos[even_pos_with_odd[n]]] = temp

我对这个解决方案不太满意,尽管它有效。有没有更好的方法来解决我的问题?我的目标是使x[][2, 3, 6, 5, 4, 7, 8, 9, 10, 11]可能以相同的奇偶格式排序。


Tags: inpos列表forlenifwithrange