繁体   English   中英

Python覆盖字典写入文本文件问题

[英]Python Overwrite Dictionary write to text file issue

在我的最后一个问题中, 重写我的成绩文本文件以确保它只有最后4个成绩(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():使用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()

但是我不能使用第三行(output = ...),因为这会将比分写到文本文件中,类似于顶部的代码块。 我确实尝试使用迭代项,但是在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')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM