python 里的dict的问题

sesame172 2012-12-03 07:24:39
有4列数:
a;aaa;1;1
b;aaa;1;2
a;bbb;4;5
a;aaa;2;5
a;aaa;2;5
b;aaa;2;5
。。。后面还很多
怎么把第1列相同的数中的第2列相同的第3列求和,比如上面结果应该为:
a;aaa;5(1+2+2)#括号不显示
a;bbb;4
b;aaa;3
求教,谢谢
...全文
183 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
兆帅 2012-12-10
  • 打赏
  • 举报
回复
引用 3 楼 hanzhaoshuai 的回复:
Python code?1234567891011121314file=open('1.txt','r')strList=file.readlines()dic=dict()for line in strList: if dic.get(line[0:6])==None: dic[line[0:6]]=0 else: dic[lin……
dic[line[0:6]]=0 改为: dic[line[0:6]]=int(line[6:8])
兆帅 2012-12-08
  • 打赏
  • 举报
回复

file=open('1.txt','r')
strList=file.readlines()
dic=dict()
for line in strList:
    if dic.get(line[0:6])==None:
        dic[line[0:6]]=0
    else:
        dic[line[0:6]]+=int(line[6:8])
keys=dic.keys()
values=dic.values()
file=open('1.txt','w')
for i in range(len(keys)):
    file.write(keys[i]+':'+values[i]+'\n')
file.close()
大概就是这个逻辑 你调调。。。
zjs100901 2012-12-03
  • 打赏
  • 举报
回复
lst1 = [ 'a;aaa;1;1', 'b;aaa;1;2', 'a;bbb;4;5', 'a;aaa;2;5', 'a;aaa;2;5', 'b;aaa;2;5' ]
dict1 = {}
for strLine in lst1 :
	words = strLine.split( ';' )
	key1 = words[0] + ';' + words[1]
	value1 = int( words[2] )
	if key1 in dict1:
		dict1[key1] += value1
	else :
		dict1[key1] = value1
print dict1
ImN1 2012-12-03
  • 打赏
  • 举报
回复
你这个不是嵌套序列吧? 如果是读取csv的话,逐行读取,把1/2列拼接为key,第三列根据key存在方法做累加器

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧