changeset 158:f5e2211b50bd

do whole line
author Henry S. Thompson <ht@inf.ed.ac.uk>
date Wed, 06 Jul 2022 18:00:53 +0100
parents cac9586291ad
children c3c3dd60b8a8
files bin/uniq_merge.py
diffstat 1 files changed, 6 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/bin/uniq_merge.py	Mon Jul 04 18:14:41 2022 +0100
+++ b/bin/uniq_merge.py	Wed Jul 06 18:00:53 2022 +0100
@@ -1,16 +1,13 @@
 #!/usr/bin/env python3
-# Merge counts by key from the output of "uniq -c" and sort in descending order
+# Merge counts by key from the output of "uniq -c" (or sus) and sort in descending order
 # An alternative to sus when the scale is too big for the initial sort, or if uniq -c already does a lot
 #  of the work
 # Usage: ... | uniq -c | uniq-merge.py
 import sys
-s={}
+from collections import defaultdict
+s=defaultdict(int)
 for l in sys.stdin:
- (i,d)=l.split()
- i=int(i)
- if d in s:
-  s[d]+=i
- else:
-  s[d]=i
+ (i,d)=l.split(maxsplit=1)
+ s[d]+=int(i)
 for (d,n) in sorted(s.items(),key=lambda j:j[1],reverse=True):
- print('%5d\t%s'%(n,d))
+ sys.stdout.write('%5d\t%s'%(n,d))