1 回答

TA貢獻1770條經驗 獲得超3個贊
幾乎總是最好將代碼的其余部分轉換為最方便的格式,并盡可能靠近入口點。您的代碼希望有一個字符串和一個整數。在將數據添加到結構之前,在從文件中讀取數據時進行轉換list_of_lists:
score = 5
name = "Adam"
file = open("leaderboard.txt", "a+")
file.write(name+" ")
file.write(str(score)+"\n")
file.close()
file = open("leaderboard.txt", "r")
list_of_lists = []
for line in file:
list_line = line.split()
list_line[1] = int(list_line[1]) # This is the new code
list_of_lists.append(list_line)
print(list_of_lists)
這樣,您的內部數據結構list_of_lists將包含程序其余部分所需的內容;無需進行后續改造。您會注意到我的示例省略了第二個for循環;我們在初始讀取時處理了轉換。
int是這里的新概念。但是,通過在文件讀取循環中執行此操作,您可以避免在后續循環中進行額外的后處理。
作為一個單獨的說明,如果輸入文件中的一行不符合預期,通常最好了解一下您希望發生的情況;輸入驗證。例如,您可能想悄悄地跳過空白行,并且可能想向 STDERR 發出警告,然后跳過任何不遵循“string[space]integer”格式的行。
添加回答
舉報