2016-01-08 115 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歡迎您。 –