求助Python分类统计如何实现?

求助Python分类统计如何实现?

例子:1.txt 以下是文本内容
         衣服,10,1,李四
         衣服,10,1,张三
         鞋子,28,1,李四
         鞋子,20,0,李四
         裤子,30,1,张三
         帽子,27,1,张三
         帽子,23,0,张三
        注意:0为减少,1为增加的
      如何进行各种不同的东西统计计算?谁编写一下程序.
        打印统计结果是:

             衣服,10,李四
         衣服,10,张三
         鞋子,8,李四
         裤子,30,张三
         帽子,4,张三

什么意思?
统计啥?看不懂你说的哦。
#encoding=utf8
fh = open('in.txt', 'r')
lines = [line.strip().split(',') for line in fh if len(line)>5]
fh.close()

result = {}

for line in lines:
    key = line[0]
    if not result.has_key(key): result[key] = 0
    result[key] +=int(line[1])*(1 if int(line[2])==1 else -1)

for key in result:
    print key,result[key]
答案写得牛,就是有些地方写得晦涩了点。


1 if int(line[2])==1 else -1

这一行很有意思,呵呵,还没注意竟然还有这样的if
lz是除了按照类别外还按人名来做关键词
是的
稍微改一下不就有了。

#encoding=utf-8

# 读取数据
fh = open('in.txt', 'r')
lines = [line.strip().split(',') for line in fh if len(line)>5]
fh.close()

# 统计数量
result = {}
for line in lines:
    if not result.has_key(line[0]): result[line[0]] = {}
    if not result[line[0]].has_key(line[3]): result[line[0]][line[3]] = 0
    result[line[0]][line[3]] += int(line[1])*(1 if int(line[2])==1 else -1)

# 打印结果
for _type in result:
    for _name in result[_type]:
        print _type, result[_type][_name], _name