Sort by dictionary values sorted by dictionary value, similar to the SORT-K commandImport operatorx= {1:2,3:4,4:3,2:1,0:0}sorted_x = sorted (X.iteritems (),Key=operator.itemgetter (1))In []: sorted_xout[38]: [(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)] Sorted_y = sorted (X.iteritems (), Key=operator.itemgetter (1), reverse=true) find large space-occupying files os.walkos.path.getsizedict sort (TOP10) #!/usr/bin/env python import osimport sysimport operator def gen_dic (topdir): dic = {} A = Os.walk (Topdir)for P, D, F in a:For I in F:fn = Os.path.join (P, i)f_size = os.path.getsize (FN)DIC[FN] = f_size return dic if __name__ = = ' __main__ ': dic = gen_dic (sys.argv[1]) sorted _dic = sorted (Dic.iteritems (), Key=operator.itemgetter (1), reverse=true) for K, V in sorted_dic[:10]: Print K, '----> ', v [[email protected] day2]# python 4_top10.py. /2_walk.py----> 781./3_dup.py----> 727./4_top10.py----> 484./1_md5sum.py----> 421./3_yield.py----> 127./test/a----> 0./test/b----> 0 [[email protected] day2]# python 4_top10.py/etc/etc/selinux /targeted/policy/policy.24----> 8377047/etc/selinux/targeted/modules/active/policy.kern----> 8377047/etc/ PKI/TLS/CERTS/CA-BUNDLE.TRUST.CRT----> 1066943/ETC/PKI/TLS/CERT.PEM----> 877042/etc/pki/tls/certs/ CA-BUNDLE.CRT----> 877042/etc/alternatives/libnssckbi.so.x86_64----> 709880/etc/services----> 641020/etc /PKI/CA-TRUST/EXTRACTED/OPENSSL/CA-BUNDLE.TRUST.CRT----> 359773/etc/selinux/targeteD/modules/active/file_contexts.template----> 296225/etc/selinux/targeted/modules/active/file_contexts---- > 290594
Python learning: Dictionary sort