2013-03-27 130 views
4

我已經搜索並找不到答案,即使我確定它已經在那裏。我對python非常陌生,但是我在其他語言之前完成了這類東西,我正在以行形式讀取一個數據文件,並且希望將每行數據存儲在它自己的元組中,以便在for循環之外訪問。使用for循環創建一系列元組

tup(i) = inLine 

其中inLine是從文件和tup(i)行是它的存儲在元組。i隨着循環去圓。然後我就可以打印使用類似的任何行

print tup(100) 
+0

嘗試做一個谷歌搜索的「使用用於創建一系列元組循環「 – DwB 2013-03-27 17:26:19

回答

3

創建一個元組,你在一個循環中描述不是一個很好的選擇,因爲它們是不可變的。

這意味着每當你爲你的元組添加一個新行時,你真的會創建一個與舊元組相同值的新元組,加上你的新行。這是低效的,一般應避免。

如果你需要的是指通過索引行,你可以使用一個列表:

lines = [] 
for line in inFile: 
    lines.append(line) 

print lines[3] 

如果你真的需要一個元組,你可以將它轉換大功告成後:

lines = tuple(lines) 
1

Python文件對象支持一種名爲file.readlines([sizehint])的方法,該方法讀取整個文件內容並將其存儲爲列表。

或者,您也可以通過元組傳遞文件iterator對象的方式創建行和索引它的元組你想

#This will create a tuple of file lines 
with open("yourfile") as fin: 
    tup = tuple(fin) 

#This is a straight forward way to create a list of file lines 
with open("yourfile") as fin: 
    tup = fin.readlines() 
+0

在你的第二個例子中,不會'lis = list(fin)'更簡單嗎?更恰當地命名? :^) – DSM 2013-03-27 18:40:52