我正在读取一个文件,其中每行包含从1到x的数字以及我需要保存的一些相关字符串。
我想读一下这个数字。 index和字符串然后将此字符串保存在列表中,作为具有我读取的索引的元素。
fread = open("sample.txt", "r")
lines = fread.readlines()
fread.close()
data = []
for line in lines:
temp = line.split("\t")
data[int(temp[0])] = temp[1]
但我得到IndexError: list index out of range
对我的问题最合适的解决方案是什么?
答案 0 :(得分:1)
您无法分配给不存在的索引。要么预先确定清单的大小:
data = [None] * some_size
或使用字典:
data = {}
for line in lines:
elems = line.split("\t")
data[int(elems[0])] = elems[1]
然后将其转换成列表:
data = [data.get(i, None) for i in range(max(data))]
这将构建一个列表,其中包含足够的元素来存储从文件中读取的索引处的所有条目,以及文件中不存在的任何索引的None
值。