1 回答

TA貢獻1859條經(jīng)驗 獲得超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)
列表/元組適用于需要重復(fù)訪問/隨機訪問所有包含元素的情況。
另一種選擇是生成器——適用于以“一次性、僅向前”方式處理輸入的所有情況:
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)
當(dāng)然你也可以從生成器創(chuàng)建一個列表:
table1 = [item for item in read_data('data.csv')]
# or
table1 = tuple(item for item in read_data('data.csv'))
添加回答
舉報