我想做的是根据一定的条件把一个list-of-list的一些元素复制到另一个list中,然后改变原来的list of lists
arr = [[1,0,4],[1,2,65],[2,3,56],[11,14,34]]
brr = []
for x in range(0,len(arr)):
if arr[x][1] < 10:
brr.append(arr[x])
arr[x][1] = 1000
print(brr)
O/P:
[[1, 1000, 4], [1, 1000, 65], [2, 1000, 56]]
在上面的例子中,我想将所有中间元素<10的列表复制到另一个list-of-list brr
,然后将原始列表中的元素更改为一个大值。但是,当我更改原始列表中的值时,它也会更改第二个列表中的值
我知道当我将 arr[i] 附加到 brr 时,brr 只是将引用指针存储到 arr 中的列表,因此当这些地址的值发生更改时,它会在两个地方反射(reflect)出来,
此外,如果我必须复制整个 l-o-l,我可以使用 deepcopy 来完成,但是如果有条件/条件,最好的方法是什么
最佳答案
这是另一种复制列表的方法,以及一种更像 Python 的遍历列表的方法
arr = [[1, 0, 4], [1, 2, 65], [2, 3, 56], [11, 14, 34]]
brr = []
for x in arr:
if x[1] < 10:
brr.append(list(x))
x[1] = 1000
print(brr)
# [[1, 0, 4], [1, 2, 65], [2, 3, 56]]
关于python - 如何从列表列表中复制一些元素,这样就不会影响复制列表中元素的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55306268/