Python中的CSV列到数组

Python中的CSV列到数组,python,arrays,csv,Python,Arrays,Csv,我很难处理在我看来很简单的问题。我正在尝试导入一个csv,并将其列拆分为可以在其上运行不同操作的数组,然后将zip()重新组合在一起 import csv data = csv.reader(open('test.csv', 'rb'), delimiter=",", quotechar='|') column1, column2 = [], [] for row in data: column1.extend(row[0]) column2.extend(row[1])

我很难处理在我看来很简单的问题。我正在尝试导入一个csv,并将其列拆分为可以在其上运行不同操作的数组,然后将zip()重新组合在一起

import csv

data = csv.reader(open('test.csv', 'rb'), delimiter=",", quotechar='|')
column1, column2 = [], []

for row in data:
    column1.extend(row[0])
    column2.extend(row[1])

print column1
print column2
这段代码打印两个数组,其中的元素是单独的字符而不是字符串。当我尝试使用单个列执行此操作时,column1.extend(row)执行我想要的操作


我对解决这个特殊问题或将其推广到n个列的方法感兴趣。

您需要将
column1.extend(行[0])
更改为
column1.append(行[0])
(显然,第2列也是如此)。Extend用于将一个列表的内容添加到另一个列表,append用于添加单个元素。Extend告诉python将字符串视为其字符列表并附加每个字符

>>> lst = []
>>> lst.extend("foo")
>>> lst
['f', 'o', 'o']
>>> lst.append("foo")
>>> lst
['f', 'o', 'o', 'foo']

第1列和第2列是列表。要使用的方法是append()而不是extend()

查阅官方文件:

每个
索引都是一个字符串,因此如果要将其添加到列中,可以执行以下操作之一:

column1.append(row[0])
或者这个:

column1.extend([row[0]])
另一种选择:

column1 = [row[0] for row in data]