python学习:字典排序

按字典值排序

按照字典value排序,类似sort -k 命令

import operator

x= {1:2,3:4,4:3,2:1,0:0}

sorted_x = sorted(x.iteritems(),

key=operator.itemgetter(1))

In [38]: sorted_x

Out[38]: [(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)]

sorted_y = sorted(x.iteritems(),

key=operator.itemgetter(1),reverse=True)

找出占用空间大的文件

os.walk

os.path.getsize

dict sort(top10)

#!/usr/bin/env python

import os

import sys

import 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

时间: 2024-10-13 00:46:52

python学习:字典排序的相关文章

Python学习——数据排序方法

Python对数据排序又两种方法: 1. 原地排序:采用sort()方法,按照指定的顺序排列数据后用排序后的数据替换原来的数据(原来的顺序丢失),如: >>> data1=[4,2,6,432,78,43,22,896,42,677,12] >>> data1.sort() >>> data1 #原来的顺序被替换 [2, 4, 6, 12, 22, 42, 43, 78, 432, 677, 896] 2. 复制排序:采用sorted()内置函数,按照

python学习     字典

Python学习   字典 1)字典的了解 1.    字典是python中唯一的映射类型(哈希表) 2.    字典对象时可变的,但是字典的键必须使用不可变对象,并且在一个字典中可以使用不同的类型的键值. 3.    keys()或者是values()返回列表中或者值列表 4.    items()返回包含键值对应的元祖 1)  定义字典的方法和使用方法 1.字典名={key:values,key1:values1} 2.取值时: 字典名[key](取出与key相对应的values) 3.可以

python 对字典"排序"

对字典进行排序?这其实是一个伪命题,搞清楚python字典的定义---字典本身默认以key的字符顺序输出显示---就像我们用的真实的字典一样,按照abcd字母的顺序排列,并且本质上各自没有先后关系,是一个哈希表的结构: 但实际应用中我们确实有这种排序的"需求"-----按照values的值"排序"输出,或者按照别的奇怪的顺序进行输出,我们只需要把字典转化成list或者tuple,把字典每一对键值转化为list中的两位子list或者子tuple再输出,就可以达到我们的

python学习-字典1

第一次写技术博客,也是刚刚申请成功,所以要先感谢博客园的相关工作人员.开发做了多年,直到今年才开始学习python,习惯了C.C++的数据格式,所以一开始就被python数据类型中的字典所吸引.基础的知识有很多同仁都写过了,我只是通过我学习中的一道作业题来说明一下. 题目:三级菜单 要求: 1. 运行程序输出第一级菜单 2. 选择一级菜单某项,输出二级菜单,同理输出三级菜单 3. 返回上一级菜单和顶部菜单 4. 菜单数据保存在文件中" 实现代码: #准备一个三级菜单 menu_list = {&

Python学习字典.基础三

元组 Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组中要定义的元组中只有一个元素需要再元素后面加逗号,用来消除数学歧义.例 t=(1,) 字典 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号{}中. 键必须是唯一的,但值则不必(只可以取任何数据类型,但键必须不可变) 例子: #coding=utf-8 #!/usr/bin/python student={1:'ja',2:'qw'

Python中字典排序

如字典dic={'a':1,'f':2,'c':3,'h':0};要对其进行排序: 函数原型:sorted(dic,value,reverse); dic为比较函数; value为比较对象(键或值); reverse:注明升序还是降序,True--降序,False--升序(默认); 1 import operator; 2 # 字典中排序 3 def sortDict(): 4 dic={'a':1,'f':2,'c':3,'h':0}; 5 # 函数原型:sorted(dic,value,re

Python学习—字典

Python中的图--字典 字典是另一种可变容器模型,且可存储任意类型对象.字典的每个键值对key-value对用冒号:分割,每个对之间用逗号,分割,整个字典包括在花括号{}中,键必须是唯一的,但值则不必.值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组,列表集合就不可以. 1.创建字典 变量名 = {字典元素} >>> dict = {'AA':'001','BB':'002','CCC':3,4:4} >>> dict {'AA': '001', 'B

python给字典排序

应用场景: 统计一篇文章中单词的出现频率,然后进行排序 利用sorted函数,返回一个已经排序好的list,但不改变原来的数据结构 In [1]: dt = {'a':3,'b':2,'c':1} In [2]: sorted(dt.items(),key=lambda d:d[1]) Out[2]: [('c', 1), ('b', 2), ('a', 3)] In [3]: dt #dt本身并没有改变 Out[3]: {'a': 3, 'b': 2, 'c': 1} In [4]: sort

python学习-字典的增删改查

1 dic1 = {'name':'paoche', 2 'age':19, 3 'active':['beijing','hebei'], 4 'id':{'wangyi':'skmdod008b', 5 'sina':'skmdod00bc' 6 } 7 } 一.字典的增 方法1:直接新增键值对,若无此键则新增键值对,有此键则修改值 1 dic1['high'] = 180 #没有键值对,则追加 2 dic1['age'] = 30 #有键值,则修改 3 print(dic1) 4 "&qu

python学习之排序算法

1.冒泡算法:N个数从左到右,相邻两两比较,按照顺序排列. #冒泡排序,升序 a = [4,5,1,6,3,7,1,10] for i in range(len(a)): for j in range(i+1,len(a)): if a[i] > a[j]: a[i], a[j] = a[j], a[i] print(a) [1, 1, 3, 4, 5, 6, 7, 10] #冒泡排序,降序 a = [4,5,1,6,3,7,1,10] for i in range(len(a)): for j