Python 仅从嵌套列表的列表中删除元素

Python Remove element from just a list from nested lists

我有Python列表列表,比如

colours = [['1', '2', '3'], ['1', '2', '3'], ['1', '2', '3']]

三个列表的开头都是一样的。我想从第一个列表中删除第一个,这样我就有了

colours = [['2', '3'], ['1', '2', '3'], ['1', '2', '3']]

但无论我尝试什么,都会从每个列表中删除 1。

我试过 colours[0].remove('1') 但结果是

colour = [['2', '3'], ['2', '3'], ['2', '3']]

我该怎么做?

我将颜色定义为:

list = ['1', '2', '3']
for i in range(3):
    colours.append(list)

你必须运行它在某个地方循环删除元素。

颜色[0].remove('1') 很好。

c = [['1', '2', '3'], ['1', '2', '3'], ['1', '2', '3']] c[0].删除('1') 打印(c) [['2', '3'], ['1', '2', '3'], ['1', '2', '3']] --output

这对我来说听起来很难运行,我运行一个快速测试:

colours = [['1', '2', '3'], ['1', '2', '3'], ['1', '2', '3']]
colours[0].remove('1')
print(colours)   #[['2', '3'], ['1', '2', '3'], ['1', '2', '3']]

如果问题仍然存在,请使用更多信息更新您的问题

根据您在评论中的代码:

colours = []
list = ['1','2','3']
for i in range(3):
    colours.append(list)

这是将同一个列表添加了 3 次。因此,当您使用:

colours[0].remove('1')

您基本上是从原始列表中删除 1。因此它也适用于各种颜色。这是因为所有颜色的列表都指向内存中的相同位置。

我的建议是,首先不要使用变量名 list,因为它遮盖了内置 list。其次构建您想要的列表,每次迭代使用不同的列表:

colours = []
for i in range(3):
    colours.append(['1','2','3'])

或者使用理解:

colours = [['1','2','3'] for i in range(3)]