Python在两个整数的两个元组之间交换元素

标签 python python-3.x

问题是:在满足以下所有条件的两个元组之间交换第二个元素:由两个 int 组成,每个都在 range(5) 中,元素相同位置不相等

如果它们是两个列表,我可以简单地使用带有索引的变量交换,但是元组是不可变的,所以我将两个元组解压到一个列表中,然后解压该列表分成四个变量并对变量重新排序...

示例代码

(请参阅声明变量的初始值,打印的值是预期的结果。)

a, b = [1,2], [3,4]      
a[1], b[1] = b[1], a[1]  
print(a)                 
print(b)                 
                         
l1, l2 = (1,2), (3,4)    
a, b, c, d = [*l1, *l2]  
print((a, d))            
print((c, b))            
In [161]: a, b = [1,2], [3,4]
     ...: a[1], b[1] = b[1], a[1]
     ...: print(a)
     ...: print(b)
     ...:
     ...: l1, l2 = (1,2), (3,4)
     ...: a, b, c, d = [*l1, *l2]
     ...: print((a, d))
     ...: print((c, b))
[1, 4]
[3, 2]
(1, 4)
(3, 2)

我不想将元组转换为列表,我想知道是否有更好的方法来交换两个元组之间的第二个元素?

最佳答案

你说得对,元组是不可变的,你将无法绕过创建新的元组。如果您只想在不使用解包符号的情况下执行此操作,您可以执行类似的操作

l1, l2 = (1,2), (3,4)
a = (l1[0],l2[1])
b = (l2[0],l1[1])

如果速度是一个问题,使用 pypy 运行它会非常有效。

关于Python在两个整数的两个元组之间交换元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69474900/

相关文章:

python - subprocess.Popen 命令(反词)在 shell 与 Web 应用程序中产生不同的输出

python - 如何在数据框上添加新的输入行?

python - 将新字典添加到现有字典中作为键的值

python-3.x - 如何一次性将 df 列值映射到十六进制颜色?

python - 创建有序计数器

python - PyQt 应用程序因错误而关闭

python - Pandas 结合城市和州字符串

python - 在python中使用回车和换行的正确方法

python - Popen.communicate() 抛出 UnicodeDecodeError

python - 如何检查当前时间是否在python的范围内?