2017-06-02 27 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