我知道一份和一份列表。但是,这个问题有点不同,因为我原来的列表是用元素相乘生成的。你知道吗
首先,我通过list_ori = [[0]*3]*3
生成原始列表。
我想要的是修改[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
,然后得到[[1, 0, 0], [0, 0, 0], [0, 0, 0]]
我尝试了以下代码。你知道吗
import copy
list_ori = [[0]*3]*3
list_copy = copy.deepcopy(list_ori)
list_copy[0][0] =1
print(list_copy)
因此,我得到了[[1, 0, 0], [1, 0, 0], [1, 0, 0]]
。
但实际上,我想得到[[1, 0, 0], [0, 0, 0], [0, 0, 0]]
我有两个简单的解决方案,但是我想知道有没有一个更清晰的方法来处理list_ori = [[0]*3]*3
,通过深度复制然后修改它?你知道吗
两个简单的解决方案:
1list_ori = [[0 for i in range(3)] for j in range(3)]
list_copy = copy.deepcopy(list_ori)
list_copy[0][0] =1
print(list_copy)
我改变了名单。名单列表中没有重复的元素。你知道吗
2m = n = 3
test = [[0] * m] * n
print(test)
test_copy = [copy.copy(element) for element in test]
test_copy[0][0] = 1
print(test_copy)
此方法迭代列表的元素。这种方法会破坏列表的结构吗?你知道吗
首先,使用
list_ori = [[0 for i in range(3)] for j in range(3)]
,不需要深度复制,只需执行以下操作:输出:
相关问题 更多 >
编程相关推荐