2016-01-08 80 views
3

我是python的新手。我正在学习一些基本的东西。当我执行这段代码的时候,我正在对Python列表进行一些操作,例如three_lists=[]*3,它只给我一个像这样的空列表[]。为什么它不给我3个空列表?一些什么样的这个[],[],[]了解Python列表操作

+1

为了获得您可能期待的效果,您需要使用'[[]] * 3'。然而,由此产生的3个子列表实际上全都是相同的列表,所以改变其中的一个将会改变它们,这可能是你不想要的。要获得3个独立的子列表,你可以使用'[[]为我在范围内(3)]' –

回答

7

它说,就在Python docs

s * nn * s相当于增加s自身n

其中s是一个序列和nint。例如

>>> [1,2,3]*3 
[1, 2, 3, 1, 2, 3, 1, 2, 3] 

这与其他序列一致为好,如str

>>> 'hello'*3 
'hellohellohello' 

如果你想要的3名空名单列表,你可以说

>>> [[] for _ in range(3)] 
[[], [], []] 
2

它不” t乘以列表它是列表中的乘法项目 例如

>>> x = []*3 
>>> x 
[] 
>>> y = [1]*3 
>>> y 
[1, 1, 1] 
1

算术规则(编程中的运算符)仍然适用,不能用'0'或空值与多个值取反,得到原来的值。

+0

我是多么愚蠢;)谢谢 – user2991828

+0

@ user2991828欢迎您。 –