gpt4 book ai didi

python - 如何执行列表的成对交换?

转载 作者:行者123 更新时间:2023-11-28 21:15:29 26 4
gpt4 key购买 nike

我想用 python 编写一个小代码,交换列表中的元素这个程序将接受一个列表,并将返回一个交换每对相邻元素位置的列表:位置 0 和 1,位置 2 和 3 , 等等。如果列表中的元素数量为奇数,则最后位置的元素将保持“原位”。

Before: [1,2,3,4,5]
After: [2,1,4,3,5]

这看起来不像 python 。 Python 的实现方式是什么?

最佳答案

如果你总是保证有 偶数 个数字,这里有一个简洁的方法:

 nums = [1,2,3,4,5,6]
print([nums[i^1] for i in range(len(nums))])
>>[2, 1, 4, 3, 6, 5]

解释:

print (0^1)    #1
print (1^1) #0
print (2^1) #3
print (3^1) #2
print (4^1) #5
print (5^1) #4

回顾一下,XOR 具有以下效果:

A   B | Output
---------------
0 0 0
0 1 1
1 0 1
1 1 0

而官方的描述是:如果y中的那个位为0,则输出的每一位都与x中对应的位相同,如果y中的那个位是x中的位的补码y 为 1。

关于python - 如何执行列表的成对交换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30097512/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com