1 回答
![?](http://img1.sycdn.imooc.com/5458453d0001cd0102200220-100-100.jpg)
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”格式的行。
添加回答
举报