gpt4 book ai didi

python - 对单词中的字节、Python 中的元组进行排序

转载 作者:行者123 更新时间:2023-11-30 23:55:25 24 4
gpt4 key购买 nike

我环顾四周,似乎找不到通过反转每个奇数和偶数条目来对 32 个条目元组进行排序的正确方法。

例如:

1 0 3 2 5 4 7 6 9 8
to
0 1 2 3 4 5 6 7 8 9

我当前的代码如下所示

i=0
nd = []
while i < len(self.r.ipDeviceName):
print(i)
if i%2:
nd[i]=self.r.ipDeviceName[i-1]
else:
nd[i]=self.r.ipDeviceName[i+1]
dn = "".join(map(chr,nd))
devicenameText.SetValue(dn)

self.r.ipDeviceName 的类型是元组,我要么得到一个IndexError,要么元组不支持分配,具体取决于代码的变化

我也尝试过,结果相同

nd = self.r.ipDeviceName
for i in nd:
if i&0x01:
nd[i]=self.r.ipDeviceName[i-1]
else:
nd[i]=self.r.ipDeviceName[i+1]
dn = "".join(map(chr,nd))
devicenameText.SetValue(dn)

结果相同。一些非常简单的事情似乎让我困惑。感谢您的帮助和时间。

最佳答案

元组是不可变的 - 一旦创建就无法修改它们。要修改单个元素,您需要将数据存储在可变集合(例如列表)中。您可以使用内置函数 listtuple 将元组转换为列表,反之亦然。

或者您可以使用 zip以及从现有元组创建新元组而不修改原始元组的函数式方法:

>>> t = tuple(range(10))
>>> tuple(x for i in zip(t[1::2], t[::2]) for x in i)
(1, 0, 3, 2, 5, 4, 7, 6, 9, 8)

或者使用itertools.chain :

>>> import itertools
>>> tuple(itertools.chain(*zip(t[1::2], t[::2])))
(1, 0, 3, 2, 5, 4, 7, 6, 9, 8)

请注意,此处使用 zip 假设您的元组具有偶数个元素(根据您的问题,这里就是这种情况)。

关于python - 对单词中的字节、Python 中的元组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4695988/

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