Python, 在嵌套列表中交换特定值
我有一个嵌套列表,里面总是有5个值。这个列表里的元素可以是不同的。
我想把这个列表复制到两个不同的列表中,并且在这两个新列表里总是交换两个值。
代码是可以做到这一点的,但在第二次循环时,第一个列表又被覆盖了。我不知道为什么会这样。
举个例子:
test = [['1', '1', '1', '2024-03-03', "100"], ['1', '1', '2', '2024-05-03', "200"], ['1', '2', '2', '2024-05-03', "200"], ['1', '3', '3', '2024-01-03', "200"]]
print(test) # Okay
lst_01 = test.copy() # Okay
lst_02 = test.copy() # Okay
for item in lst_01:
item[3] = "2024-01-01"
item[4] = ""
print(lst_01) # Okay
print(lst_02) # Not Okay: Overwritten
for item in lst_02:
item[3] = "2024-12-31"
item[4] = ""
print(lst_01) # Mistake: First list again overwritten
print(lst_02) # Okay
sum = lst_01 + lst_02 # List lst_01 and lst_02 equal. This is not correct
print(sum)
代码的结果是:
list(sum)
[['1', '1', '1', '2024-12-31', ''], ['1', '1', '2', '2024-12-31', ''], ['1', '2', '2', '2024-12-31', ''], ['1', '3', '3', '2024-12-31', ''], ['1', '1', '1', '2024-12-31', ''], ['1', '1', '2', '2024-12-31', ''], ['1', '2', '2', '2024-12-31', ''], ['1', '3', '3', '2024-12-31', '']]
第一个列表“lst_01”里的日期总是“2024-12-31”。我哪里出错了?
谢谢你的反馈。
我希望根据“test”列表的内容生成一个新列表,并且值要改变。这个新列表的元素数量是原来的两倍,并且有新的值。
0 个回答
暂无回答