鱼C论坛

 找回密码
 立即注册
查看: 1457|回复: 2

[已解决]统计一键多值

[复制链接]
发表于 2018-3-16 16:59:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如对应文档:
12 23
12 23
10 3
12 11
10 3  
12 2
13 23
2  24
2  24
2  24
...

统计结果为
12  23  23
12  11  1
12  2    1
10  3    3
13  23  1
2    24  24 24

用python 或awk都可以(其他方法也行),保存文件并输出,怎么写程序?
(昨天请教大神们结果发现我自己用次数做分析不理想,想看看大神的思路,我之前用得结构体很复杂,昨天看到大家简单用法,很涨见识)
最佳答案
2018-3-16 19:01:55
修改精简楼上代码:
  1. with open('1.txt') as f:
  2.     d={}
  3.     for each in f:
  4.         key = each[:-1] #去掉行尾的\n
  5.         if key in d.keys():
  6.             d[key] += 1
  7.         else:
  8.             d[key] = 1

  9. for key,value in d.items():     
  10.     content = key.split() #如 12 23 分割为12 和 23
  11.     ckey = content[0]
  12.     cvalue = content[1] + ' ' #添加个空格

  13.     print(ckey,cvalue * value)

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-3-16 17:29:09 | 显示全部楼层
  1. with open('test.txt') as f:
  2.     cont = f.read()
  3.     t = cont.split('\n')
  4.     d={}
  5.     for each in t:        
  6.         if each in d.keys():
  7.             d[each] += 1
  8.         else:
  9.             d[each] = 1

  10. for key,value in d.items():
  11.     print(key,'\t',value)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-16 19:01:55 | 显示全部楼层    本楼为最佳答案   
修改精简楼上代码:
  1. with open('1.txt') as f:
  2.     d={}
  3.     for each in f:
  4.         key = each[:-1] #去掉行尾的\n
  5.         if key in d.keys():
  6.             d[key] += 1
  7.         else:
  8.             d[key] = 1

  9. for key,value in d.items():     
  10.     content = key.split() #如 12 23 分割为12 和 23
  11.     ckey = content[0]
  12.     cvalue = content[1] + ' ' #添加个空格

  13.     print(ckey,cvalue * value)

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-8 17:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表