理解Python列表操作
我是python新手。我正在学习一些基本的东西。我在python列表上做了一些操作,比如理解Python列表操作,python,list,sequence,Python,List,Sequence,我是python新手。我正在学习一些基本的东西。我在python列表上做了一些操作,比如三个列表=[]*3当我执行这段代码时,它只给我一个空列表,比如[]。为什么不给我3张空名单?一些像这样的东西,[]code>,[],[]它在 s*n或n*s相当于将s添加到自身n次 其中,s是一个序列,n是一个int。比如说 >>> [1,2,3]*3 [1, 2, 3, 1, 2, 3, 1, 2, 3] >>> x = []*3 >>> x [] &
三个列表=[]*3
当我执行这段代码时,它只给我一个空列表,比如[]
。为什么不给我3张空名单?一些像这样的东西,[]code>,[],[]它在
s*n
或n*s
相当于将s
添加到自身n
次
其中,s
是一个序列,n
是一个int
。比如说
>>> [1,2,3]*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> x = []*3
>>> x
[]
>>> y = [1]*3
>>> y
[1, 1, 1]
这也与其他序列一致,例如str
>>> 'hello'*3
'hellohellohello'
如果你想要一个包含3个空列表的列表,你可以说
>>> [[] for _ in range(3)]
[[], [], []]
它不乘列表,而是乘列表中的项目 比如说
>>> [1,2,3]*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> x = []*3
>>> x
[]
>>> y = [1]*3
>>> y
[1, 1, 1]
算术规则(编程中的运算符)仍然适用,您不能使用“0”或空值进行乘法运算并得到不同的结果,您可以得到以前的原始值。要获得预期效果,您需要使用
[[]]*3
。然而,最终的3个子列表实际上都是相同的列表,因此更改其中一个子列表会更改所有子列表,这可能是您不希望的。要获得3个独立的子列表,可以使用类似于[]的内容来表示范围(3)中的i