我有一个包含多个列表的元组,我需要动态交换两个列表中项目的值。例如,tuple_of_lists = (**list1**:[1,1,1],list2:[2,2,2],**list3**:[3,3,3])
我需要能够输入--swap x & y (1,3)--
并且在不更改列表名称的情况下,输出为 ( **list1**:[3,3,3],list2:[2,2,2],**list3**:[1,1,1]
)
对Python(以及一般的编码)仍然很陌生,并且我认为我缺少一些关于数据结构的东西。
我正在尝试使用类似的东西:
intermediary = tuple_of_lists[1]
tuple_of_lists[1] = list(tuple_of_lists[3])
tuple_of_lists[3] = list(intermediary)
但是我收到一个错误,元组不接受赋值——即使它只是实际被更改的列表?有没有简单的方法可以解决?
最佳答案
元组是不可变的,因此您无法更改它们的元素。然而,列表是可变的。
您可以做的是从元组创建一个列表,交换元素并将列表转换回元组:
tuple_of_lists = ([1,1,1], [2,2,2], [3,3,3])
lt = list(tuple_of_lists) #create list from tuple
lt[2],lt[0] = lt[0],lt[2] #swap items 0 and 2
tuple_of_lists = tuple(lt) #convert to tuple
print(tuple_of_lists)
输出:
([3,3,3], [2,2,2], [1,1,1])
关于python - 交换存储在元组中的两个列表的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60023616/