waq1012030438 发表于 2014-10-23 11:42

谢谢,我再看看回复 9# whitelotus19


   

423497786 发表于 2014-10-23 17:04

a={}
for i in open(r'C:\Users\Administrator\Desktop\1.txt'):
        lines = re.split('\s+', i)
        if lines in a:
                a] += int(lines)
        else:
                a] = int(lines)

print a
   

423497786 发表于 2014-10-23 17:12

回复 1# waq1012030438

import re,os

a={}
for i in open(r'C:\Users\Administrator\Desktop\1.txt'):
      lines = re.split('\s+', i)
      if lines in a:
                a] += int(lines)
      else:
                a] = int(lines)

fo = open(r'C:\Users\Administrator\Desktop\new.txt','w')
for j in a:
fo.write(j + ' ' + str(a) + os.linesep)

fo.close()
   

Hadron74 发表于 2014-10-23 19:10

本帖最后由 Hadron74 于 2014-10-23 19:11 编辑

回复 1# waq1012030438

就这个问题来说没有必要用python,用Linux下的shell命令一行搞定:

cut -f 3 -d ' ' a.log | sort | uniq -c

也可以用awk, 这里就不写了。C:\Users\luhongc>cat -> a.log
2014 1 189mail
2014 2 189mail
2014 2 reader
2014 1 cloud
2014 2 cloud
2014 3 189mail

C:\Users\luhongc>cut -f 3 -d ' ' a.log | uniq -c
      3 189mail
      1 reader
      2 cloud

love_shift 发表于 2014-10-26 11:50

>>> s
'\n2014 1 189mail\n2014 2 189mail\n2014 2 reader\n2014 1 cloud\n2014 2 cloud\n2014 3 189mail\n'
>>> l =[ x.split() for x in s.strip().split('\n') ]
>>> for i in set(l):
...   print i,l.count(i)
...
189mail 3
cloud 2
reader 1
页: 1 [2]
查看完整版本: 使用python统计求和