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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。