2017-06-02 23 views
0

我想在Python中聲明一個動態列表並用它做各種操作,但是在操作之後它並沒有給出所需的輸出。在Python中的固定大小列表沒有給出所需的輸出

當我宣佈名單的長度一般喜歡arr =list()正常工作:

arr = list() 
arr.insert(0,5) 
arr.insert(1,10) 
arr.insert(0,6) 
print(arr) 
arr.remove(6) 
arr.append(9) 
arr.append(1) 
arr.sort() 
print(arr) 
arr.pop() 
arr.reverse() 
print(arr) 

這是給我的預期結果:

[6, 5, 10] 
[1, 5, 9, 10] 
[9, 5, 1] 

但是,當我試圖大小傳遞給該列表沒有給出預期的行爲:

arr = [10] 
arr.insert(0,5) 
arr.insert(1,10) 
arr.insert(0,6) 
print(arr) 
arr.remove(6) 
arr.append(9) 
arr.append(1) 
arr.sort() 
print(arr) 
arr.pop() 
arr.reverse() 
print(arr) 

這是giv ing我:

[6, 5, 10, 10] 
[1, 5, 9, 10, 10] 
[10, 9, 5, 1] 

我不明白爲什麼會發生這種情況。

+3

我想你的意思是「傳遞一個大小」到列表中是arr = [10],這是錯誤的。這只是初始化一個由一個元素組成的列表,也就是10.另外,你會期望輸出是什麼? – rammelmueller

+0

你沒有通過一個10的大小,10是列表中的一個元素'arr'。 –

+0

@LukasR然後我應該通過什麼? – Mandrek

回答

0

arr = [10]不創建十個元素的列表;它會創建一個包含1個元素的列表,值爲10.如果要創建一個長度爲10個元素的列表,可以執行類似arr = [0 for _ in range(10)]的操作。

+0

'arr = [0] * 10'也將完成工作 – VMRuiz

+0

@Izaak Weiss給出[6,5,10,0,0,0,0,0,0,0,0,0] [0,0,0,0,0,0,0,0,0,1,5,9,10] [9,5,1,0,0,0,0,0,0,0 ,0,0,0] – Mandrek

+0

@Mandrek你期望得到什麼? – VMRuiz