python 字典 sort,sort函数在Python中的用法

  python 字典 sort,sort函数在Python中的用法

  字典显示:

  1)、tang.keys() #显示键值

  2)、tang.values() #显示值

  3)、tang.items() #显示键值:value;返回列表

  Tang.iteritems() #显示键值:value;返回迭代器

  一、字典显示,items()与iteritems()区别。

  字典的items()方法和iterators()方法是python字典的内置函数,分别返回Python list和iterator。

  Python的items方法用于以列表形式返回字典中的所有条目。因为字典是无序的,所以字典中的所有项都由items方法返回,这也是无序的。

  python字典的iteritems方法的功能和items方法大致相同,只是它的返回值不是列表而是迭代器。

  补码迭代器,迭代对象到生成器的关系:

  字典项的操作方法():

  x={title:python web site , URL : www.iplaypy.com } x . items()[( URL , www.iplaypy.com ),( title , python web site )]a=x . items()a[( URL ,www . iplaypy . com ),( title , python web site )]type(a)type list 从结果中可以看出,items()方法将字典中的每一项作为元组添加到一个列表中,形成一个新的列表容器。如果需要,您还可以将返回的结果赋给一个新变量,该变量将是一个列表数据类型。

  dicertitems()的操作方法:

  f=x . iterators()f dictionary-item iterator对象位于0x b 74d 5 E3 ctype(f)type dictionary-item iterator # list(f)的字典项的迭代器[(URL , www.iplaypy.com ),( title , python网站)] dictionary。iteritems()方法最适合需要迭代结果的时候,效率非常高。

  二、operator.itemgetter函数

  运算符模块提供的itemgetter函数用于获取对象的哪些维度的数据,参数是一些序列号(即对象中要获取的数据的序列号)。我们举个例子。

  A=[1,2,3]b=operator . item getter(1)//定义函数b获取对象第一个域的值,printb (a)//2b=operator . item getter(1,0)//定义函数b获取对象第一个域和第0个域的值,printb(a)/。operator.itemgetter函数不获取值,但定义了一个函数,通过该函数可以对对象进行操作来获取值。

  具有运算符功能的多级排序

  Students=[(john , A ,15),(美丽的奇迹, B ,12),( dave , B ,10),] sorted (students,key=itemgetter (1,2)) # sorted by graded then by A ,15),( Dave , B ,10),(美丽的奇迹, B ,12)] ## Sort字典D={data1: 3, data2: 1, data3: 2, data4 。reverse=True) [(数据4 ,4),(数据1 ,3),(数据3 ,2),(数据2 ,1)]三、sorted和sort

  Sort()是Python列表的内置排序方法。排序时,list.sort()方法直接修改原列表,返回None;

  Sorted()是Python内置的一个排序函数,它从迭代器返回一个新的排序列表。

  与sort()相比,sort()应用广泛,但如果不需要保留原始列表,sort更有效。另外,sort()只是列表的一个方法,只适用于列表,而sorted()函数接受所有迭代器,返回一个新的列表。

  两者的功能形式如下:

  Sorted (iterable [,key] [,reverse]) list.sort (*,key=none,reverse=none)这两个方法有以下两个公共参数:

  Key是一个只有一个参数的函数,它返回一个值用于排序。默认值为无。这个函数只调用一次,这么快。

  反转表示排序结果是否反转。

  看看这个例子:

  A=(1,2,4,2,3) # a是元组,所以不能排序A. Sort () traceback(最近一次调用last): file stdin ,line1,InModuleAttributeError: tuple 对象没有属性 sort sorted (a) # sorted()可以对元组进行排序并返回新的有序列表[1,2,2,3,4] a=[1 ,1, a ,3,7,N] sorted (a) [1,3,7, 1 , a , n] a # sorted()N]所以在实际应用过程中,如果需要保留原始列表,使用sorted()函数更合适,否则可以选择sort()函数,因为sort()函数不需要复制原始列表,占用内存更少,效率更高。

  Sorted()函数非常强大,它可以方便地对不同的数据结构进行排序,以满足不同的需求。例子如下:

  对词典进行排序:

  已排序({1: d ,2: b ,3: b ,4: e ,5: a}) #按字典键[1,2,3,4,5]排序({1: d ,2: b

  Student_tuples=[(john , A ,15),(美丽奇迹, B ,12),( Dave , B ,10)] sorted (student _ tuples,key=lambda student: student [0] B ,10),(美丽奇迹, B ,12),( john , A ,15)] sorted (student _ tuples,key=lambda student:student[2])# age sorting[( Dave , B 12),( John , A ,15)]调用运算符模块中的itemgetter()根据多个进行排序

  Sorted (student _ tuples,key=itemgetter (2)) #按年龄排序[(dave , B ,10),(美丽奇迹, B ,12),( John , A ,15)]排序(student _ Key=itemgetter(1,2)) #按年级和年龄排序[(John , A ,15),( dave , B ,10),(美丽奇迹, B ,12)]排序(student _ tuples,key=Reverse=True) #反转排序结果[(美丽奇迹, B ,12),(排序

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: