在csv python中列出列表旁边的列

时间:2013-11-28 05:16:56

标签: python list csv multiple-columns writer

当我使用以下方式单独打印时,我有两个列表:

writer.writerows(list_)

我得到了

LIST_1:

0   -0.00042    0.004813    0.010428    0.051006
1   0.000053    0.004531    0.010447    0.051962
2   0.000589    0.004518    0.009801    0.052226
3   0.000083    0.004581    0.010362    0.052288
4   -0.000192   0.003726    0.011258    0.051094
5   0.000281    0.004078    0.01008     0.052156

list_2:

-0.000419554    -0.000366128    0.000223134     0.000306416     0.000114709

我已经整整一天尝试将list_2添加为list_1的另一列并将其写入csv文件。我认为这很简单,但卡住了。我感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

一种通用解决方案,它结合了两个列表(或其他可迭代)列中的列:

import csv
import itertools
import sys

def combine_columns(iterable1, iterable2):
    for x, y in itertools.izip(iterable1, iterable2):
        yield list(x) + list(y)

list1 = [[11, 12, 13], [21, 22, 23]]
list2 = [[14, 15], [24, 25]]
writer = csv.writer(sys.stdout)
writer.writerows(combine_columns(list1, list2))

输出:

11,12,13,14,15
21,22,23,24,25

答案 1 :(得分:1)

这是一个例子,不知道你的数据是什么样的,所以我不得不猜测:

list_1 = [
    [1,2,3],
    [4,5,6],
    [7,8,9],
]
list_2 = [10,20,30]

list_1 = [row + [col] for row, col in zip(list_1, list_2)]
for row in list_1:
    print row

输出:

[1, 2, 3, 10]
[4, 5, 6, 20]
[7, 8, 9, 30]

现在list_1将list_2作为新列,您可以使用csv模块将其写出来。