Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中的嵌套列表中插入元素?_Python_Python 3.x_Python 2.7_Nested Lists - Fatal编程技术网

如何在Python中的嵌套列表中插入元素?

如何在Python中的嵌套列表中插入元素?,python,python-3.x,python-2.7,nested-lists,Python,Python 3.x,Python 2.7,Nested Lists,我在Python方面没有太多经验。 我所要做的就是在嵌套列表中插入元素。我有两个列表看起来很相似,但它们的行为完全不同 list1=[['a','b']]*3 列表2=['a'、'b']、['a'、'b']、['a'、'b']] 当我输出打印时,这两个列表都给出相同的输出: 但当我尝试在嵌套列表中插入元素时,两者都以不同的方式进行插入。下面是在嵌套列表中插入元素的代码 list1 = [['a','b']] * 3 for item in list1: item.append("Hell

我在Python方面没有太多经验。 我所要做的就是在嵌套列表中插入元素。我有两个列表看起来很相似,但它们的行为完全不同

list1=[['a','b']]*3
列表2=['a'、'b']、['a'、'b']、['a'、'b']]

当我输出打印时,这两个列表都给出相同的输出:

但当我尝试在嵌套列表中插入元素时,两者都以不同的方式进行插入。下面是在嵌套列表中插入元素的代码

list1 = [['a','b']] * 3
for item in list1:
  item.append("Hello")
print (list1)
这个输出

当我用下面的方法定义列表时,它正是我想要的

list2 = [['a','b'],['a','b'],['a','b']]
for item in list2:
  item.append("Hello")
print (list2)
这将产生以下输出:
['a',b','Hello'],['a','b','Hello'],['a','b','Hello'].

为什么这两个人的行为不同?
list1=[['a','b']]*3
list2=['a'、'b']、['a'、'b']、['a'、'b']]

当您在此处使用
*
运算符时,您说的是“我想要三个”

因此,您得到了对同一
['a','b']
的3个引用。在您的例子中,您正在将
'Hello'
添加到相同的
['a','b']
引用中

如果您想进行3次单独的引用,请尝试使用列表理解:

>>> x = [['a', 'b'] for i in range(0, 3)]
>>> x
[['a', 'b'], ['a', 'b'], ['a', 'b']]
>>> x[0].append('Hello')
>>> x
[['a', 'b', 'Hello'], ['a', 'b'], ['a', 'b']]

当你在这里使用
*
操作符时,你说的是“我想要3个”

因此,您得到了对同一
['a','b']
的3个引用。在您的例子中,您正在将
'Hello'
添加到相同的
['a','b']
引用中

如果您想进行3次单独的引用,请尝试使用列表理解:

>>> x = [['a', 'b'] for i in range(0, 3)]
>>> x
[['a', 'b'], ['a', 'b'], ['a', 'b']]
>>> x[0].append('Hello')
>>> x
[['a', 'b', 'Hello'], ['a', 'b'], ['a', 'b']]
如您所知,这将创建一个列表列表。但是,嵌套列表实际上是对同一列表对象的所有引用

因此,当您使用

for item in list1:
在每次迭代中引用相同的列表对象。因此,您重复添加到同一列表

另一方面,在示例代码中,
list2
被显式地分配了一个包含三个不同列表的列表。这些列表碰巧有相同的元素,但它们是不同的列表

如您所知,这将创建一个列表列表。但是,嵌套列表实际上是对同一列表对象的所有引用

因此,当您使用

for item in list1:
在每次迭代中引用相同的列表对象。因此,您重复添加到同一列表


另一方面,在示例代码中,
list2
被显式地分配了一个包含三个不同列表的列表。这些列表碰巧有相同的元素,但它们是不同的列表。

谢谢,那么如何创建长度可变的嵌套列表呢。可以这样做吗?我会使用列表理解:
x=['a',b']表示范围(0,3)内的I]
。这里的区别是每次都会创建一个新的
['a','b']
。谢谢,我在前面的问题中得到了答案。谢谢你的回答。谢谢,那么我如何创建长度可变的嵌套列表呢。可以这样做吗?我会使用列表理解:
x=['a',b']表示范围(0,3)内的I]
。这里的区别是每次都会创建一个新的
['a','b']
。谢谢,我在前面的问题中得到了答案。谢谢你的回答。