python for loop输出为列表

时间:2017-10-01 19:34:34

标签: python django for-loop output

我需要对数组中的一系列元素进行一些计算。

所以,在我的views.py中,我的代码是:

(...)
for f in enumerate(array)
    calc1 = value_x
    calc2 = value y
(...)

并且,当我打印calc1时,例如,我的输出返回

1
1
1
1
1
0.98
1
1
1
1
1
1

并且,我的输出必须像这样

['1', '1', '1', '1', '1', '0.98', '1', '1', '1', '1', '1', '1']

我已经尝试过像

这样的事情
testLi = []
for f in enumerate(array):
    testLi.append(str(TPR_class))
print 'testLI {}'.format(testLi)

但它给了我

testLI ['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1']
testLI ['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1']
testLI ['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1']
testLI ['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1']
testLI ['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1']
testLI ['0.98', '0.98', '0.98', '0.98', '0.98', '0.98', '0.98', '0.98', '0.98', '0.98', '0.98', '0.98']
testLI ['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1']
testLI ['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1']
testLI ['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1']
testLI ['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1']
testLI ['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1']
testLI ['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1']

有人可以帮帮我吗?

谢谢。

2 个答案:

答案 0 :(得分:0)

由于您需要将值输出作为列表,我建议使用列表推导而不是for循环,如果可能的话。它更快更容易阅读,它应该产生你想要的结果。例如,如果您需要打印的值存储在 array 中,我将使用以下代码:

[str(x)for x in array]

通过在代码周围使用硬括号,每个值都会在评估后编译为一个列表作为字符串值。

希望这证明对你有帮助。

答案 1 :(得分:0)

使用enumerate()将包含索引的元组及其值(0,'item1')(1,'item2')等返回到数组中。但是考虑到你对'x'的兴趣,我会去假设您的输入实际上是一个字典,并且您对一个键列表感兴趣('key1','item1')('key2','item2')等。

如果您使用的是Python3,请在字典上使用items()来获取序列上的迭代器。并使用键的循环快捷键,值随着循环的进行立即提取键和每个项的值。

然后使用list comprehensions,您可以在一行中构建最终列表:

mydict = {'a':'b','c':'d','f':'g'}
print([str(x) for x,y in mydict.items()])

如果您不需要值部分而只需要键,则可以简化为

print([str(key) for key in mydict])