如果我的输入有一个产品列表,并且它的数量用空格分隔,我想制作一个python代码,它将输出产品的唯一值和每个产品的数量总和。
输入:
Product1 3
Product2 3
Product3 6
Product2 5
Product1 1
Product1 2
Product321 4
Product4 2
Product5 3
Product3 4
Product1 1
Product2 2
Product5 4
Product321 5
输出:
Product1 7
Product2 10
Product3 10
Product4 2
Product5 7
Product321 9
答案 0 :(得分:1)
如何打开/阅读文件:How to Open a file through python
如何总结事物中的重现:item frequency count in python
如何在python中分割字符串:How to split a string into a list?
把它们放在一起我想出了这个:
from collections import defaultdict
info = defaultdict(int)
with open("PATH_TO_INPUT","r") as f_in:
for line in f_in:
name,number = line.split(" ")
info[name]+=int(number)
with open("PATH_TO_OUTPUT","w") as f_out:
f_out.write("\n".join("%s %s"%pair for pair in info.items()))
它并不像它可能的那样冗长,但是这项任务的每一个方面都在其他地方得到了很好的描述。
答案 1 :(得分:0)
欢迎使用堆叠溢出。您知道,这是您请求其他人更正代码的地方,而不是为您编写代码。您需要先尝试一下,如果您的实施存在问题,如果您在尝试一段时间后无法修复它,可以询问如何修复它。
在这里,让我给你一些解决问题的提示:
Pandas
(http://pandas.pydata.org/)。 了解命令
2.1。 read.csv
2.2。 group_by
2.3。 agg
2.4。 reset_index
使用这些,您应该能够在一行文本中完成问题。请试试。