python 堆排序函数,Python 堆排序

  python 堆排序函数,Python 堆排序

  个人资料简介

  包括字典排序、列表排序、升序、降序和逆序。

  一.基本概念

  我们知道python的内置序列包括字典、列表、元组、字符串等。序列是python中最基本的数据结构。

  默认情况下,序列索引(如list、tuple和string)的第一个元素的索引从0开始,第二个元素的索引是1,后面是2、3和4。

  字典的索引直接由键决定。键是字符串、元组、数字,依次对应对应的值。比如当DIC1={CMDMXMT: asjdfbx ,33:123 ,(2,3,4) :bzdgb}想得到 asjdfbx 的值

  二。排序:

  用于排序的函数通常是排序,用后返回。这个函数只需要知道三个参数就可以解决日常排序问题。

  对列表排序

  示例:

  名单呢?

  列表1=[ 4,22,5,7,3,2,723,88 ]

  使用

  已解决(列表1)。

  排序后默认生成升序结果[2,3,4,5,7,22,88,723]。

  对于这个排序函数,可以使用另一个变量直接返回列表,并保存这次排序后返回的结果。

  如果要下降,可以将reverse参数设置为True,如下图。

  已解决(清单1,reverse=True))。

  实际上,另一个函数以相反的顺序用作输出。是反函数。这个函数返回一个对象。要转换为列表,必须使用list函数进行转换。

  下面的代码以相反的顺序返回对象。

  是相反的(清单1)

  对象的结果表示内存的位置,

  转换成列表的代码如下:

  列表(倒置(列表1)))

  逆序输出结果为[88,723,2,3,7,5,22,4]。

  此外,还有复杂列表的排序。列表中的代码示例如下:

  Person=[(CMDMXMT ,程序员,40], phdsb ,服务员,30],[冷静的太阳,警察,50]]

  这个复杂列表的排序必须结合lambda表达式,才能对相应的值进行比较和排序。

  (list6ASC=sorted(Person,key=lambda person:person[2]))))))

  排名结果如下:[(淡定孙),(警察),50),),cmdxmt),(程序员),40),),phdsb,(服务员),30)

  实际上,这里更重要的是使用排序函数的关键参数来传递值。这里,第三个位置的年龄用于排列比较顺序。默认情况下,它按升序排序。如果是降序,添加reverse参数。

  LIST6ASC=sorted(Person,key=lambda person:person[2],reverse=True))))))))).

  2.字典排序

  假设字典是这样的:

  dic1={d2:40, d1:30, d3:50}

  字典排序主要有两种方式。

  第一个:钥匙的使用方式。

  DIC2ASC=sorted(DIC1,key=dic1。__getitem__))

  dic2asc的结果是[d1 , d2 , d3],从中可以看出我们的魔法属性__getitem__是进出字典的关键。

  然后,知道了字典的键之后,就想知道对应的值。我们直接过一遍。

  对于dic2asc中的k:

  Print (k str) DIC1[k]))

  传球

  输出结果如下。

  d1 30

  d2 40

  d3 50

  当然,如果您想要降序,请使用reverse参数将其设置为True。这里请注意,True的首字母一定要大写,很多同学喜欢小写。Python中的变量名区分大小写。

  其次,使用items方法对整个词典进行排序和输出。

  这个方法要和lambda公式一起用,比较好用。

  DIC4ASC=sorted(DIC1.items(,key=lambda dic1:dic1[1])) .

  如果你现在想下降,我想那是不言而喻的。但是,上述代码输出的结果是一个列表。[(D3)、(50)、(d2)、(40)、(d1)、(30 ) ]

  如果你想把这个列表转换成一个字典,你可以使用

  是DICT(DIC4ASC)

  转换很方便!转换后的结果如下。

  {d3: 50, d2: 40, d1: 30}

  三。本教程的源代码

  列表1=[ 7,2,5,88,33,55,66 ]

  #按升序排序,从小到大

  2列表ASC=已解决(列表1))

  打印(升序结果:)

  打印(list2asc)

  #按降序排序,从最大到最小

  打印(降序结果:)

  list3desc=已排序(list1,reverse=True)

  打印(列表3描述)

  #反向输出

  打印(“反向输出”)

  list4rev=反转(list1)

  打印(列表(list4rev))

  #复杂列表

  打印(复杂列表排序输出)

  list 5=[ cmdxmt ,40],[bzdgb ,30],[phdsb ,50]]

  #升降序需要使用钥匙,这个键是分类的函数中的参数

  list6asc=sorted(list5,key=lambda list5:list5[1])

  打印(列表6asc)

  list7desc=sorted(list5,key=lambda list5:list5[1],reverse=True)

  打印(列表七描述)

  #字典的排序

  dic1={d2:40, d1:30, d3:50}

  dic2asc=sorted(dic1,key=dic1 .__getitem__)

  打印(dic2asc)

  对于dic2asc中的k:

  print(k str(dic1[k]))

  及格

  #字典的降序输出

  dic3desc=sorted(dic1,key=dic1 .__getitem__,reverse=True)

  打印(dic3desc)

  对于dic3desc中的k:

  print(k str(dic1[k]))

  及格

  #使用项目方法来对字典排序

  dic4asc=sorted(dic1.items(),key=lambda dic1:dic1[1])

  打印(dic4asc)

  #使用降序

  dic4asc=sorted(dic1.items(),key=lambda dic1:dic1[1],reverse=True)

  打印(dic4asc)

  #转为字典

  打印(dict(dic4asc))

  输出结果:

  升序结果:

  [2, 5, 7, 33, 55, 66, 88]

  降序结果:

  [88, 66, 55, 33, 7, 5, 2]

  逆序输出

  [66, 55, 33, 88, 5, 2, 7]

  复杂列表排序输出

  [[bzdgb ,30],[cmdxmt ,40],[phdsb ,50]]

  [[phdsb ,50],[cmdxmt ,40],[bzdgb ,30]]

  [d1 , d2 , d3]

  d1 30

  d2 40

  d3 50

  [d3 , d2 , d1]

  d3 50

  d2 40

  d1 30

  [(d1 ,30),( d2 ,40),( d3 ,50)]

  [(d3 ,50),( d2 ,40),( d1 ,30)]

  {d3: 50, d2: 40, d1: 30}

  进程已结束,退出代码0

  更多精彩,欢迎关注微信公众号:编程创造城市

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

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