English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
本文实例讲述了Python实现字典的遍历与排序功能。分享给大家供大家参考,具体如下:
字典的遍历:
首先:
items():
功能:以列表的形式返回字典键值对
eg:
dict_={"a":2,"b":3,"c":6} dict_.items() >>>[('a',2),('b',3),('c',6)]
iteritems():
功能:以迭代器对象返回字典键值对
# -*- coding: cp936 -*- dict1={'a':1,'b':2,'c':3} #第一种: for d in dict1: print "%s:%d"%(d,dict1[d]) print #第二种: for k,v in dict1.items(): print "%s:%d"%(k,v) print #第三种: for k,v in dict1.iteritems(): print "%s:%d"%(k,v) print #第四种: for k in dict1.iterkeys(): print "%s:%d"%(k,dict1[k] print #第五种: for v in dict1.itervalues(): print v print #第六种: for k,v in zip(dict1.iterkeys(),dict1.itervalues()): print "%s:%d"%(k,v) print
zip()函数可以把列表合并,并创建一个元祖对的列表。
eg:
list1=[1,2,3] list2=[4,5,6] zip(a,b) >>>[(1,4),(2,5),(3,6)]
zip()函数参数可以是任何类型的序列,也可以有两个以上的参数,当传入参数的长度不同时,zip自动以最短序列长度为准进行截取,获得元祖。
字典的排序:
首先:
函数sorted(dic,value,reverse)
过程:第一个参数传递给第二个参数“键-键值”,第二个参数取出其中的键[0]或键值[1]
dic为比较函数,value为排序对象(键或者键值)
reverse注明升序排序或是降序排序,值有true-降序和false-升序(默认值)
eg:按字典的键值排序(把dict[1]换成dict[0]就是按字典的键排序)
sorted(dict.iteritems(),key=lambda dict:dict[1],reverse=True)
解释说明:
dict.iteritems()得到[(键,键值),(键,键值),(键,键值)...]的列表。然后用sorted方法,通过key这个参数指定排序是按照键值,也就是第一个元素d[1]的值来排序。reverse=True表示需要翻转的(即降序排序),默认是升序排序。
函数lambda与函数iteritems()
lambda:
功能:创建匿名函数
eg:
fun_1=lambda a:a+1 print fun_1(1) >>>2 fun_2=lambda a,b:a+2*b fun_2(1,1) >>>3
iteritems():
功能:以迭代器对象返回字典键值对
# -*- coding: cp936 -*- print "按字典键值进行排序" dict1={'a':3,'c':1,'b':2} #Ascendente: dict_a=sorted(dict1.iteritems(),key=lambda dict1:dict1[1],reverse=False) #Ordenar en orden descendente reverse=True , este parámetro se puede omitir, el valor predeterminado es False. O dict_a.reverse() print dict_a,"\n" #Descendente: dict2={'a':3,'c':1,'b':2} dict_b=sorted(dict2.iteritems(),key=lambda dict2:dict2[1],reverse=True) print dict_b,"\n" ############################################################## print "Ordenar por clave de diccionario" dict3={'d':6,'e':5,'f':4} #Descendente: dict_c=sorted(dict3.iteritems(),key=lambda dict3:dict3[0],reverse=True) #Ordenar en orden descendente reverse=True , este parámetro se puede omitir, el valor predeterminado es False. O dict_a.reverse() print dict_c,"\n" #Ascendente: dict4={'d':6,'e':5,'f':4} dict_d=sorted(dict4.iteritems(),key=lambda dict4:dict4[0])#Cambiar a orden descendente al igual que el anterior print dict_d,"\n"
PS: Además, recomiendo una herramienta de demostración de ordenamiento adicional para su referencia:
Demostración animada en línea de inserción/Selección/Burbuja/Combinación/Shell/Herramienta de proceso de algoritmo de ordenamiento rápido:
http://tools.jb51.net/aideddesign/paixu_ys
Los lectores interesados en más contenido relacionado con Python pueden consultar las secciones especiales de este sitio: 'Tutorial de Estructuras de Datos y Algoritmos de Python', 'Resumen de Algoritmos de Encriptación y Desencriptación de Python y Técnicas', 'Resumen de Técnicas de Codificación de Python', 'Resumen de Técnicas de Uso de Funciones de Python', 'Resumen de Técnicas de Operación de Cadenas de Python' y 'Tutorial Clásica de Inicio y Avance de Python'.
Espero que lo descrito en este artículo pueda ayudar a todos a diseñar programas de Python.
Declaración: El contenido de este artículo se ha obtenido de la red, es propiedad de los respectivos autores, el contenido se ha contribuido y subido por los usuarios de Internet de manera autónoma. Este sitio no posee los derechos de propiedad, no ha sido editado por humanos y no asume ninguna responsabilidad legal relacionada. Si encuentra contenido sospechoso de infracción de derechos de autor, le invitamos a enviar un correo electrónico a: notice#oldtoolbag.com (al enviar un correo electrónico, reemplace # con @ para denunciar y proporcione evidencia relevante. Una vez verificada, este sitio eliminará inmediatamente el contenido sospechoso de infracción de derechos de autor.)