簡體   English   中英

Python從文本文件追加輸出錯誤

[英]Python Append From Text file outputs error


我目前正在測試程序的第三階段,在下面的代碼測試過程中反復出現此錯誤:

我試圖將一些值讀入字典並打印字典以向我顯示每個用戶的最后三個分數(我最初選擇4,但我改變了設計思路。)代碼如下:

import collections 
from collections import defaultdict 
worker_scores = collections.defaultdict(lambda: collections.deque(maxlen=3))
import operator

with open('score_names.txt') as f:
     for line in f: 
        worker,score = line.split(":")
        worker_scores[worker].append(int(score)) 

for name in sorted(program_scores):
    print(name," ".join(map(str,program_scores[worker])))

文本文件也顯示如下:

AdamJohnson:10
AdamJohnson:20
AdamJohnson:30
AdamJohnson:40
AdamJohnson:50
AdamJohnson:60 
MichaelJordan:70
MichaelJordan:80
MichaelJordan:90
MichaelJordan:100
DavidSnowman:110
DavidSnowman:120
DavidSnowman:130
DavidSnowman:140

現在,如果文本文件僅包含AdamJohnson,如下所示:

AdamJohnson:10
AdamJohnson:20
AdamJohnson:30
AdamJohnson:40
AdamJohnson:50
AdamJohnson:60 

然后,IDLE正確打印:

AdamJohnson 40 50 60

但是當MichaelJordan和DavidSnowman存在時,我希望IDLE顯示:

AdamJohnson 40 50 60
MichaelJordan 80 90 100
MichaelJordan 120 130 140

相反,出現此錯誤:

Traceback (most recent call last):
  File "/Users/Ahmad/Desktop/TESTS/Task 3/Dictionary copy.py", line 8, in <module>
     worker,score = line.split(":")
ValueError: need more than 1 value to unpack

如何解決此問題,以確保在打印時在IDLE中獲得所需的結果?

謝謝,德爾伯特。

更新代碼現在可以運行,但是分數打印不正確...請參見以下代碼:

AdamJohnson 120 130 140
DavidSnowman 120 130 140
MichaelJordan 120 130 140

為什么會這樣呢???

在最后打印分數時,您是通過變量worker查找它們的,該變量在循環中沒有變化,而不是name

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM