簡體   English   中英

python通過僅打印每個名稱一次來打印文件的總結果?

[英]python printing total result from file by only printing every name once?

嗨,我正在嘗試從文件中打印一些信息,以獲取此人的名字,而該人的所有號碼加在一起僅顯示一次。

文件中的信息如下所示:randomfile.txt

Jack, 20.00
Sofie, 12.00 
Jack, 32.50
Sofie, 33.75

我想要的輸出:

Jack   52.50
Sofie  45.75

我知道如何獲取所有信息,但是我不知道如何將信息加起來,這樣我就可以打印它而不必多次打印名稱。

簡單的方法。

scores = {}
for line in txtfile:
    name, score = line.split(",")
    if name in scores:
         scores[name] += score
    else:
         scores[name] = score
for k,v in scores.items():
   print(k,v)

您仍然可以在這里進行一些調整...我將這些留給您

這是一種簡單的方法。

s = '''Jack, 20.00
Sofie, 12.00 
Jack, 32.50
Sofie, 33.75'''


final_dict = {}
for line in s.split('\n'):
    name = line.split(',')[0].strip()
    score = line.split(',')[1].strip()
    if name in final_dict.keys():
        final_dict[name] = float(final_dict[name]) + float(score)
    else:
        final_dict[name] = float(score)

for k, v in final_dict.items():
    print(k,'',v)

輸出:

Jack  52.5
Sofie  45.75

我將把它留在這里只是為了好玩:

awk '{p[$1] += $2} END {for (k in p) print k" "p[k]}' randompeople.txt

暫無
暫無

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

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