转换for循环的列表输出

时间:2013-11-14 09:13:57

标签: python

for line in inputFile: #here is 5 lines
    data = [['Text', 'Count'], [var1, var5]]
    print data

输出:

[['Text', 'Count'], ['Test', 156]]
[['Text', 'Count'], ['Test5', 154]]
[['Text', 'Count'], ['Test6', 156]]
[['Text', 'Count'], ['Test8', 178]]
[['Text', 'Count'], ['Testg', 144]]

如何以这种方式输出:

[['Text', 'Count'], ['Test', 156], ['Test', 156], ['Test', 156],['Test', 156],['Test', 156]]

我可以将输出转换为这种方式吗?

2 个答案:

答案 0 :(得分:4)

只需将每个数据附加到列表中:

L = [['Text', 'Count']]
for line in inputFile:
    L.append([var, var5])

答案 1 :(得分:1)

或简单的1-liner:

L = [['Text', 'Count']] + [[var1, var5] for _ in inputFile]

示例:

>>> inputFile = xrange(10)
>>> var1, var5 = '1', '2'
>>> [['Text', 'Count']] + [[var1, var5] for _ in inputFile]
[['Text', 'Count'], ['1', '2'], ['1', '2'], ['1', '2'], ['1', '2'], ['1', '2'], ['1', '2'], ['1', '2'], ['1', '2'], ['1', '2'], ['1', '2']]

或使用itertools

from itertools import chain
list(chain([['Text', 'Count']], ([var1, var5] for _ in inputFile)))