创建元组列表(以更优雅的方式)

时间:2013-02-05 16:02:02

标签: python python-3.x

我正在编写一个python脚本来读取一个由逗号分隔的三列组成的文件,创建每行的元组,并列出这些元组。使用以下脚本,我实现了我想要的;我只是想知道是否有一种更简单/更优雅的方法,而不是单独编写以下每个步骤。

import sys
fin=open(sys.argv[1],'r') 

list  = []

for line1 in fin:
        line2 = line1[:-1]
        line3 = line2.split(',')
        line4 = tuple(line3)
        list.append(line4)
print(list)

感谢您的回答。

2 个答案:

答案 0 :(得分:4)

使用列表理解:

lst = [tuple(line.rstrip().split(',')) for line in fin]

(不要将变量命名为list;它会影响内置函数并导致意外错误。)

答案 1 :(得分:2)

Python附带电池!如果您需要阅读csv文件,只需使用csv module

import sys, csv

with open(sys.argv[1]) as f:
    lst = list(csv.reader(f))

请注意,这会创建一个列表列表,如果您因某些原因需要元组,那么

with open(sys.argv[1]) as f:
    lst = [tuple(row) for row in csv.reader(f)]