我在Python 2.7中创建了代码,它使用write()方法将各种产品的销售数据保存到文本文件中。我有限的Python技能已经在下一步发挥作用了 - 我需要能够从文本文件中读取这些数据的代码,然后计算并显示每个项目的平均销售数量。数据存储在文本文件中,就像下面显示的数据一样(但如果有帮助,我可以将其格式化为不同)。
产品A,30
产品B,26
产品C,4
产品A,40
产品B,18
产品A,31
产品B,13
产品C,3
经过太长时间的谷歌搜索无济于事,任何关于管理这个的最佳方式的指针将非常感激。提前谢谢。
答案 0 :(得分:0)
您可以从文件read
,然后用空格(' '
)拆分每一行。然后,只需创建一个字典,并将每个新项目附加到列表中,该列表是每个字母键的值,然后使用sum
和len
来获得平均值。
products = {}
with open("myfile.txt") as product_info:
data = product_info.read().split('\n') #Split by line
for item in data:
_temp = item.split(' ')[1].split(',')
if _temp[0] not in products.keys():
products[_temp[0]] = [_temp[1]]
else:
products[_temp[0]] = products[_temp[0]]+[_temp[1]]
product_list = [[item, float(sum(key))/len(key)] for item, key in d.items()]
product_list.sort(key=lambda x:x[0])
for item in product_list:
print 'The average of {} is {}'.format(item[0], item[1])
答案 1 :(得分:0)
from __future__ import division
dict1 = {}
dict2 = {}
file1 = open("input.txt",'r')
for line in file1:
if len(line)>2:
data = line.split(",")
a,b = data[0].strip(),data[1].strip()
if a in dict1:
dict1[a] = dict1[a] + int(b)
else:
dict1[a] = int(b)
if a in dict2:
dict2[a] = dict2[a] + 1
else:
dict2[a] = 1
for k,v in dict1.items():
for m,n in dict2.items():
if k == m:
avg = float(v/n)
print "%s Average is: %0.6f"%(k,float(avg))
输出:
Product A Average is: 33.666667
Product B Average is: 19.000000
Product C Average is: 3.500000