1 回答
TA贡献1859条经验 获得超6个赞
为什么不使用元组列表 - 那么你可以使用列表理解:
with open('data.csv', newline='') as f:
reader = csv.reader(f)
table1 = [(float(row[0]), float(row[1])) for row in reader]
如果你真的需要一个元组而不是一个列表:tuple()接受迭代,所以你可以将列表理解传递给它:
table1 = tuple((float(row[0]), float(row[1])) for row in reader)
列表/元组适用于需要重复访问/随机访问所有包含元素的情况。
另一种选择是生成器——适用于以“一次性、仅向前”方式处理输入的所有情况:
def read_data(filename):
with open(filename, newline='') as f:
reader = csv.reader(f)
for row in reader:
yield (float(row[0]), float(row[1]))
for item in read_data('data.csv'):
print(item)
当然你也可以从生成器创建一个列表:
table1 = [item for item in read_data('data.csv')]
# or
table1 = tuple(item for item in read_data('data.csv'))
添加回答
举报