【问题标题】:Python Overwrite Dictionary write to text file issuePython覆盖字典写入文本文件问题
【发布时间】:2015-02-14 12:21:05
【问题描述】:

在我的最后一个问题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 行(输出 = ...),因为它会将分数写入文本文件,类似于顶部的代码块。我确实尝试使用迭代项,但在 IDLE 中返回了错误。

谢谢,德尔伯特。

【问题讨论】:

    标签: python dictionary writer


    【解决方案1】:
    >>> 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')
    

    【讨论】:

    • 是的,zip 作为无效语法错误返回给我。
    • @DelbertJ.Nava 也许你写的不对!你能显示你的错误吗?
    • 复制了您的确切代码块! for k,v in d.items(): print zip(repeat(k,len(v)),v)
    • 打印缩进到新行的位置。
    • SyntaxError - Invalid Syntax ... zip 以红色突出显示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    • 2020-10-22
    • 1970-01-01
    • 2012-04-15
    • 2016-08-26
    • 1970-01-01
    相关资源
    最近更新 更多