简单的ieteration / append循环没有返回正确的数组:

时间:2016-07-19 05:00:31

标签: python arrays loops set range

我有六行代码:

setA = 101

for i in range(101):
    l = [0]
    q = i * 3
    f = str(q)
    print f

向上打印数字:

0
3
6
9
12
15
18
21
24
27
30
33

但我希望他们在一个数组中,所以我改变了它:

setA = 101

for i in range(101):
    l = [0]
    q = i * 3
    f = str(q)
    l.append(f)

print str(l)    

但现在,它只给了我一个双值数组[0, '300'],就是这样。我有一种感觉,我错过了一些非常非常基本的东西。任何人都可以澄清吗?

2 个答案:

答案 0 :(得分:3)

您每次迭代都要重置数组:

for i in range(101):
    l = [0]

将其移出你的循环,它将起作用:

l = []
for i in range(101):
    q = i * 3
    f = str(q)
    l.append(f)

print str(l)

答案 1 :(得分:-1)

你可以使用python的列表理解:

l = [i*3 for i in range(101)]
# Variable l now contains a list of integers

l_str = [str(i) for i in range(101)]
# l_str is a list of strings (if you need string or going to print them)

# if you need to print it out you can use this construction
print('\n'.join(l_str))