4

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

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

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

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

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

谢谢!

4

2 回答 2

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]]
于 2012-10-22T05:03:20.697 回答
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 模块。你可以在这里看到一个基本的例子

你可以这样做:

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)
于 2012-10-22T09:25:55.370 回答