获取行索引而不是csv文件中的列

时间:2012-10-22 04:21:43

标签: csv python-3.x tuples

首先,我只想说我是非常对Python的新手,或任何类型的编程。另外,我不知道该把什么作为标题,对不起。所以我打开了这个csv文件,然后我剥离并分割逗号,然后只是检查,我打印出来,它给了我这样的(只是一些示例数字):

['1','2','3','4']
['5','6','7','8']
['9','10','11','12']

我想知道是否有一种方法可以索引行而不是列,例如,如果我尝试打印my_list [0]它会给我     1     五     9

而不是['1','2','3','4']。我的实际问题是我需要将csv数据转换为一行元组,并将元素转换为整数,并能够选择任何行进行进一步处理。

我不熟悉我在这个网站上看过的很多模块。如果可能的话,我想要一个非常基本的编码帮助。(虽然它有时效率很低)

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用相当简单的列表推导将列表转换为您想要的格式(在从csv获取列表之后),使用zip(*my_list)转置它:

>>> my_list = [['1','2','3','4'],
...            ['5','6','7','8'],
...            ['9','10','11','12']]
>>> [[int(x) for x in row] for row in zip(*my_list)]
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

答案 1 :(得分:1)

此答案遵循您对stranac提供的答案的评论,并尝试根据需要创建my_list

my_list = []
with open('Test.csv', 'r') as csvfile:
    for lines in csvfile:
        temp_lines = lines.strip().split(',')
        my_list.append(temp_lines)

print(my_list)

但是我建议您使用python中已有的csv模块。 您可以看到基本示例here

您可以这样做:

import csv
my_list = []
with open('Test.csv') as csvfile:
    spamreader = csv.reader(csvfile)
    for row in spamreader:
        my_list.append(row)
print(my_list)