Python中两个双整数元组第二个元素交换的更优实现方法咨询
最优实现方案
因为元组是不可变类型,本身无法修改内部元素,我们只需要直接构造新元组并同时赋值即可,完全不需要做列表转换:
l1, l2 = (1,2), (3,4) # 一行完成交换,无需任何列表转换操作 l1, l2 = (l1[0], l2[1]), (l2[0], l1[1]) print(l1) print(l2)
运行输出:
(1, 4) (3, 2)
方案说明
- 利用Python多变量同步赋值的特性,先计算右侧两个新元组的值,再统一赋值给左侧的
l1和l2,不会出现原值被覆盖的问题 - 没有额外的类型转换和中间列表生成,代码更简洁,可读性和执行效率都优于原有实现
- 完全满足所有前置条件:仅适用于长度为2的整数元组,元素范围、相同位置元素互不相等的限制不影响逻辑执行
内容的提问来源于stack exchange,提问作者Ξένη Γήινος
相关产品推荐
相关产品推荐

