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[] += } END {for (k in p) print k" "p[k]}' randompeople.txt
您好,我正在尝试从文件中打印一些信息,以便只显示一次该人的姓名,并将该人的所有号码相加。
文件中的信息如下所示: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[] += } END {for (k in p) print k" "p[k]}' randompeople.txt