2024-04-26 18:50:45 发布
网友
我有一段代码:
lst = [[1,1], [2,1],[3,1]] n = len(lst) head = lst[n - 1] head[0] += 1 lst.append(head) del lst[0] print(lst)
我希望这段代码可以打印:[[2,1], [3,1], [4,1]] 但它正在打印:[[2, 1], [4, 1], [4, 1]]. 我不明白为什么。请帮帮我。你知道吗
[[2,1], [3,1], [4,1]]
[[2, 1], [4, 1], [4, 1]].
一个快速解决你的需要是
inc_lst = [ [ x[0]+1 , x[1] ] for x in lst]
希望能有所帮助
写head = lst[n - 1]时,通过引用将head设置为lst的最后一个元素。这意味着值为[3,1]的对由两个变量共享。如果不想更改原始列表中的对,请确保head复制了数据。你知道吗
head = lst[n - 1]
[3,1]
head = lst[n - 1].copy()
当你使用
执行时,引用[3,1]作为头
head[0] += 1
您将[[1,1],[2,1],[3,1]]更改为[[1,1],[2,1],[4,1]]
当你做append时,lst得到了另一份head。你知道吗
因此,在del lst[0]之后,得到结果[[2,1],[4,1],[4,1]]
一个快速解决你的需要是
希望能有所帮助
写
head = lst[n - 1]
时,通过引用将head设置为lst的最后一个元素。这意味着值为[3,1]
的对由两个变量共享。如果不想更改原始列表中的对,请确保head复制了数据。你知道吗当你使用
执行时,引用[3,1]作为头
您将[[1,1],[2,1],[3,1]]更改为[[1,1],[2,1],[4,1]]
当你做append时,lst得到了另一份head。你知道吗
因此,在del lst[0]之后,得到结果[[2,1],[4,1],[4,1]]
相关问题 更多 >
编程相关推荐