怎样用python将数组里的数从高到低排序

Python014

怎样用python将数组里的数从高到低排序,第1张

1、首先我们定义一个列表输入一串大小不一的数字。

2、可以用sort()方法对定义的列表排序,注意,sort只是对列表排序,它没有返回一个值。

3、输入print列表名即可得到排序后的列表数据。

4、倒序可以用这个reverse方法,把元素位置倒转过来。

5、然后再次print列表名,这样就会得到倒转顺序之后的列表数据。

5、如图两相对比即实现了从高到低和从低到高排序。

# 合成一个字典

ab = dict(zip(a, b))

# 根据字典的键进行排序(也就是第一个列表);也可以根据第二个列表进行排序。

# 具体是升序还是降序,自己挑着来。

ab_order = sorted(ab.items(), key=lambda x: x[0], reverse=

False)

今天下午,成长群的群主申总提出,群里每个人找一个战友,互帮互助。一石激起千层浪,群里面积极向上好青年们就开始踊跃自我介绍,一个比一个优秀,让人羡慕不已。我正想要参与其中,突然想到我的活学活用系列需要更新了。没有困难,创造困难也要上。于是,仔细想一想,可能出现几种情况:

如果用Python来随机配对,能解决上面的问题。还有一个好处,每个月初,有了新的成员加进来之后,可以重新打乱配对一次,这样每个月都会有一个新的战友配对,就可以结交一个新朋友,岂不更好。

把全体群成员放在一个集合里面,然后随机的从这个集合中挑出两个元素,作为一对战友,然后把这俩哥们从集合中删除,剩下的成员组成了新的集合,再对新的集合重复上面的操作,一直到新的集合为空,程序结束

在Python中可以用list或者set来实现

set和list的区别如下:

set是无序的,不可重复的

list是有序的,可以重复的

直觉上set比较适合,于是查看set的文档,看有没有适合的操作函数。发现set的操作函数有5个:

其中pop()从集合中删除并返回随机的一个元素,好像很符合我的要求,于是动手尝试。

输入的结果如下:

成功了O(∩_∩)O哈哈~

PS:因为可能存在成员数为单数的情况,为了不使程序出错,这里添加了一个try-except

上面是用set实现的,那用list能实现吗?

答案是:可以

查看Python文档,发现一个函数非常适合:random.shuffle,这个家伙能把一个list中的成员洗牌打乱,那么我们就可以按照顺序把大乱以后的list中的成员打印出来,挨着的两个成员就成为战友。实现如下:

输入的结果如下:

成功,而且不会因为单数问题报错,实现起来也比set简单,更重要的一点是程序运行后生成了一个雷暴members保存了所有的战友匹配信息。方便保存。

这里有个知识点是list的切片,list[i:j]返回的是一个小list,是原来list的第i个元素到第j个元素。

如果要应用到群成员配对,只需要把members的内容替换成为愿意程序配对的群成员们就可以啦

set创建和pop()函数

list创建,list切片

random.shuffle(list)给list洗牌