Python 覆盖字典写入文本文件问题
Python Overwrite Dictionary write to text file issue
在我的最后一个问题 中,我设法得到了一个字典,可以像这样打印出来:
Adam 150 140 130 50
Dave 120 110 80 60
Jack 100 90 70 40
但我还希望字典按字母顺序显示最后 4 个结果,例如:
Adam:150
Adam:140
Adam:130
Adam:50
Dave:120
Dave:110
Dave:80
Dave:60
Jack:100
Jack:90
Jack:70
Jack:40
我曾尝试使用 for k, v in d.iteritems():
但这也不起作用,因为一本字典中的每个键都有 4 个值(每个 1 个名称有 4 个分数)。
此解决方案的修复方法是什么,可以让字典像上面的文本块一样将列表打印回我的文本文件 (guess_scores.txt)?
帮助我将分数写入文本文件的代码是这个,如果你需要的话。
writer = open('Guess Scores.txt', 'wt')
for key, value in scores_guessed.items():
output = "{}:{}\n".format(key,','.join(map(str, scores_guessed[key])))
writer.write(output)
writer.close()
但我不能使用第 3 行 (output = ...),因为它会将分数写入文本文件,类似于顶部的代码块。我确实尝试使用 iteritems,但在 IDLE 中返回了一个错误。
谢谢,德尔伯特。
>>> d={'Adam': [150 ,140, 130 ,50] ,'Dave': [120, 110 ,80 ,60] ,'Jack' :[100, 90, 70 ,40]}
>>> for k,v in sorted(d.items()):
... for item in v:
... print str(k) + ":" + str(item)
...
Adam:150
Adam:140
Adam:130
Adam:50
Dave:120
Dave:110
Dave:80
Dave:60
Jack:100
Jack:90
Jack:70
Jack:40
并写入文件:
with open('Guess Scores.txt', 'wt') as f :
for k,v in sorted(d.items()):
for item in v:
f.write(str(k) + ":" + str(item)+'\n')
在我的最后一个问题
Adam 150 140 130 50
Dave 120 110 80 60
Jack 100 90 70 40
但我还希望字典按字母顺序显示最后 4 个结果,例如:
Adam:150
Adam:140
Adam:130
Adam:50
Dave:120
Dave:110
Dave:80
Dave:60
Jack:100
Jack:90
Jack:70
Jack:40
我曾尝试使用 for k, v in d.iteritems():
但这也不起作用,因为一本字典中的每个键都有 4 个值(每个 1 个名称有 4 个分数)。
此解决方案的修复方法是什么,可以让字典像上面的文本块一样将列表打印回我的文本文件 (guess_scores.txt)?
帮助我将分数写入文本文件的代码是这个,如果你需要的话。
writer = open('Guess Scores.txt', 'wt')
for key, value in scores_guessed.items():
output = "{}:{}\n".format(key,','.join(map(str, scores_guessed[key])))
writer.write(output)
writer.close()
但我不能使用第 3 行 (output = ...),因为它会将分数写入文本文件,类似于顶部的代码块。我确实尝试使用 iteritems,但在 IDLE 中返回了一个错误。
谢谢,德尔伯特。
>>> d={'Adam': [150 ,140, 130 ,50] ,'Dave': [120, 110 ,80 ,60] ,'Jack' :[100, 90, 70 ,40]}
>>> for k,v in sorted(d.items()):
... for item in v:
... print str(k) + ":" + str(item)
...
Adam:150
Adam:140
Adam:130
Adam:50
Dave:120
Dave:110
Dave:80
Dave:60
Jack:100
Jack:90
Jack:70
Jack:40
并写入文件:
with open('Guess Scores.txt', 'wt') as f :
for k,v in sorted(d.items()):
for item in v:
f.write(str(k) + ":" + str(item)+'\n')