在python中向列表添加数字 c=int(输入('somenumber')) p=0 而p

在python中向列表添加数字 c=int(输入('somenumber')) p=0 而p,python,Python,我想向列表中添加数字,但我不想使用排序(因为它们不是算术级数;这只是一个测试示例,我知道可以使用排序)。上面的代码我试图做一些事情,但上面的代码实际上没有做任何事情(有什么问题?将test=[1,2]放入循环中意味着你只得到1,2,最后一个p添加到列表中,你需要在while循环外初始化列表: c = int(input('somenumber')) p = 0 while p < c: test = [1, 2] test.append(p) p = p

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

test=[1,2]
放入循环中意味着你只得到1,2,最后一个
p
添加到列表中,你需要在while循环外初始化列表:

c = int(input('somenumber')) 
p = 0 
while p < c: 
    test = [1, 2] 
    test.append(p) 
    p = p + 1
c=int(输入('somenumber'))
p=0
测试=[1,2]#外部循环
而p
我认为问题在于您正在循环外部初始化测试列表

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

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)

请注意,您一直在循环中重新定义列表。感谢您的快速回复,我正在尝试向列表中添加某些不一定在AP中的数字。例如[1,2,3,4…]。在本例中,我希望输出是[1,2,我有一个生成这些数字的算法,我只想把它放在一个列表中。是的,但关键是-你需要在循环外初始化列表。耶!我得到了我的预期输出
但我不明白,把列表放在循环内和循环外有什么区别?你一直在做测试,使其等于
 [1,2]
在每次迭代中,在代码中的while循环中放置一个
打印测试
。不需要
x for x in…
它是多余的。
test.extend(range(p,c))
很好您当前的答案中没有列表理解。
c = int(input('somenumber'))
p = 0
test = [1, 2]
test.extend(range(p, c))
print (test)