for line in open('transactions.dat','r'):
item=line.rstrip('\n')
item=item.split(',')
custid=item[2]
amt=item[4]
if custid in cust1:
a=cust1[custid]
b=amt
c=(a)+(b)
print(cust1[custid]+" : "+a+" :"+b+":"+c)
break
else:
cust1[custid]=amt
Output: 85.91 : 85.91 :85.91:85.9185.91
以上是我想要的代码
当我从文件中读取时,我想要添加相同的客户数量 标识。
其次不应该重复我的客户ID 字典。
因此我尝试添加c
的客户金额,但它会为我添加字符串而不是添加两者。您可以在输出的最后一部分看到c
的值。那么如何添加值。
示例交易数据:
109400182,2016-09-10,119257029,1094,40.29
109400183,2016-09-10,119257029,1094,9.99
377700146,2016-09-10,119257029,3777,49.37
276900142,2016-09-10,135127654,2769,23.31
276900143,2016-09-10,135127654,2769,25.58
答案 0 :(得分:0)
您从文件中读取字符串而不是浮点数。使用此amt=float(item[4])
将表示数字的字符串转换为浮点数,然后将print(str(cust1[custid])+" : "+str(a)+" :"+str(b)+":"+str(c))
打印出来。
答案 1 :(得分:0)
你的代码可能需要大量的重构,但简而言之,如果我理解你想做什么,你可以做到
c = float(a) + float(b)
这应该有用。