我打開了一個文件,並將其命名爲「myfile」;我想從它創建兩個不同的字典,但文件關閉我,我假設,因爲我在第一個循環中創建第一個字典。 我得到一個空字典的直方圖,我試過使用myfile作爲x和使用x而不是f爲第二個循環,我得到這個「ValueError:關閉文件上的I/O操作」。從文件創建兩個字典時保持文件打開
此外,我正在做一個類的函數,如果這有所作爲。
有沒有人知道一種方法來使這項工作?
d = {}
d2 ={}
with myfile as f:
next(f)
for line in f:
k, v = line.split()
d[int(k)] = int(v)
next(f)
for line in f:
items = line.split()
key, values = int(items[0]), items[1:]
d2.setdefault(key, []).extend(values)
hist = defaultdict(list)
for key, values in d2.iteritems():
hist[len(values)].append(key)
histogram = dict(hist)
爲什麼你需要兩個循環?你不能只通過'f'循環一次嗎? – ForeverWintr
您可以使用seek()將當前位置設置迴文件的開頭。 –