我已經搜索並找不到答案,即使我確定它已經在那裏。我對python非常陌生,但是我在其他語言之前完成了這類東西,我正在以行形式讀取一個數據文件,並且希望將每行數據存儲在它自己的元組中,以便在for循環之外訪問。使用for循環創建一系列元組
tup(i) = inLine
其中inLine
是從文件和tup(i)
行是它的存儲在元組。i
隨着循環去圓。然後我就可以打印使用類似的任何行
print tup(100)
我已經搜索並找不到答案,即使我確定它已經在那裏。我對python非常陌生,但是我在其他語言之前完成了這類東西,我正在以行形式讀取一個數據文件,並且希望將每行數據存儲在它自己的元組中,以便在for循環之外訪問。使用for循環創建一系列元組
tup(i) = inLine
其中inLine
是從文件和tup(i)
行是它的存儲在元組。i
隨着循環去圓。然後我就可以打印使用類似的任何行
print tup(100)
創建一個元組,你在一個循環中描述不是一個很好的選擇,因爲它們是不可變的。
這意味着每當你爲你的元組添加一個新行時,你真的會創建一個與舊元組相同值的新元組,加上你的新行。這是低效的,一般應避免。
如果你需要的是指通過索引行,你可以使用一個列表:
lines = []
for line in inFile:
lines.append(line)
print lines[3]
如果你真的需要一個元組,你可以將它轉換大功告成後:
lines = tuple(lines)
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()
在你的第二個例子中,不會'lis = list(fin)'更簡單嗎?更恰當地命名? :^) – DSM 2013-03-27 18:40:52
嘗試做一個谷歌搜索的「使用用於創建一系列元組循環「 – DwB 2013-03-27 17:26:19