Python Overwrite Dictionary写入文本文件问题

时间:2015-02-14 12:21:06

标签: python dictionary writer

在我的上一个问题Rewriting my scores text file to make sure it only has the Last 4 scores (python)中,我设法得到一本字典,这样打印出来:

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中返回了一个错误。

谢谢,德尔伯特。

1 个答案:

答案 0 :(得分:2)

>>> 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')