在python中向列表添加数字

时间:2014-12-14 10:14:23

标签: python

c = int(input('somenumber')) 
p = 0 
while p < c: 
    test = [1, 2] 
    test.append(p) 
    p = p + 1

我想在列表中添加数字,但我不想使用sort(因为它们不是算术级数;这只是一个测试示例,我知道可以使用排序)。上面的代码我尝试做了一些事情,但上面的代码字面上没有做任何事情(它有什么问题?

2 个答案:

答案 0 :(得分:1)

test = [1, 2]置于循环中意味着只有1,2和最后p添加到列表中,您需要在while循环之外初始化列表:

c = int(input('somenumber')) 
p = 0 
test = [1, 2]  # outside loop
while p < c:     
    test.append(p)
    p += 1
print(test) # print test to see the contents when the loop finishes


In [1]: for i in range(3):
   ...:     test = []  # keeps resetting test to an empty list
   ...:     test.append(i)
   ...:     print(test,i)
   ...:     
([0], 0)
([1], 1)
([2], 2)

In [2]: test = [] # initialised outside the for loop so we get all elements appended

In [3]: for i in range(3):
   ...:     test.append(i)
   ...:     print(test,i)
   ...:     
([0], 0)
([0, 1], 1)
([0, 1, 2], 2)

答案 1 :(得分:0)

我认为问题是你是在循环外初始化测试列表。

无论如何,从您的具体示例开始,您可以使用更少的代码行获得相同的结果:

c = int(input('somenumber'))
p = 0
test = [1, 2]
test.extend(range(p, c))
print (test)