c = int(input('somenumber'))
p = 0
while p < c:
test = [1, 2]
test.append(p)
p = p + 1
我想在列表中添加数字,但我不想使用sort
(因为它们不是算术级数;这只是一个测试示例,我知道可以使用排序)。上面的代码我尝试做了一些事情,但上面的代码字面上没有做任何事情(它有什么问题?
答案 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)