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

Python 创建元组列表(以更优雅的方式),python,python-3.x,Python,Python 3.x,我正在编写一个python脚本来读取一个文件,该文件由三列组成,三列之间用逗号分隔,创建每行的元组,并列出这些元组。通过以下脚本,我实现了我想要的;我只是想知道,是否有一种更简单/更优雅的方法比将以下每一步单独写在一行中更简单/更优雅 import sys fin=open(sys.argv[1],'r') list = [] for line1 in fin: line2 = line1[:-1] line3 = line2.split(',')

我正在编写一个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)

谢谢你的回答

使用列表理解:

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

(不要将变量命名为列表;它会隐藏内置变量,并可能导致意外错误)。

使用列表理解:

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

(不要将变量命名为
列表;它会隐藏内置变量,并可能导致意外的错误)。

Python附带电池!如果需要读取csv文件,只需使用:

注意,这将创建一个列表列表,如果出于某种原因需要元组,那么

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

Python自带电池!如果需要读取csv文件,只需使用:

注意,这将创建一个列表列表,如果出于某种原因需要元组,那么

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

@mgilson:如果混淆了
l
1
,请使用正确的字体:-PI可能在我的个人代码中都有
l
变量名,但PEP8除外。我觉得顶级用户的答案应该是原始python代码的例子:-)(随时可以清理我不太理想的帖子;-)-另外,这让我更接近于某个我不知道名字的编辑徽章…@mgilson::-P好的,如果PEP-8警告我不要这样做,我以后会更小心的..谢谢,这就是我要找的。我将在将来称我的清单为“清单”;这行吗?@Julian——通常像
List
这样的名字是为类保留的(按照
CapWords
惯例)。我认为更典型的情况是,在通用的一次性列表中看到类似于
lst
的东西(我就是这么用的)@mgilson:如果你混淆了
l
1
,请使用合适的字体:-PI可能在我的个人代码中都有
l
变量名,但PEP8除外。我觉得顶级用户的答案应该是原始python代码的例子:-)(随时可以清理我不太理想的帖子;-)-另外,这让我更接近于某个我不知道名字的编辑徽章…@mgilson::-P好的,如果PEP-8警告我不要这样做,我以后会更小心的..谢谢,这就是我要找的。我将在将来称我的清单为“清单”;这行吗?@Julian——通常像
List
这样的名字是为类保留的(按照
CapWords
惯例)。我认为更典型的情况是看到类似于
lst
的通用丢弃列表(我就是用它来添加/修复
csv
模块的,
open()
还需要一个参数。对于Python3是
newline=''
,对于Python2是
'rb'
。要添加/修复
csv
模块,需要为
open()
再添加一个参数。对于Python3是
newline='
,对于Python2是
'rb'