前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pyhon列表排序(一)

Pyhon列表排序(一)

作者头像
王大力测试进阶之路
发布2020-05-20 21:19:18
6140
发布2020-05-20 21:19:18
举报
文章被收录于专栏:橙子探索测试

一、sort()方法:

list.sort(cmp=None, key=None, reverse=False)

cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。

key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。

reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。

代码语言:python
代码运行次数:0
复制
#列表升序
list1=['python','java','c++','阿里','1','2','3']
list1.sort()
print(list1)
#列表降序
list1.sort(reverse=True)
print(list1)
 
"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/test/test01.py
['1', '2', '3', 'c++', 'java', 'python', '阿里']
['阿里', 'python', 'java', 'c++', '3', '2', '1']
 
Process finished with exit code 0

二、sorted()函数:

sorted(iterable, cmp=None, key=None, reverse=False)

iterable -- 可迭代对象。

cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。

key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。

reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

代码语言:python
代码运行次数:0
复制
#列表升序
list2=[("python","java"),("c","c++"),("1","php")]
print(sorted(list2))
#列表降序
print(sorted(list2,reverse = True))
 
 
#通过key的值来进行数组/字典的升序
array = [{"age": 20, "name": "a"}, {"age": 25, "name": "b"}, {"age": 10, "name": "c"}]
array_data = sorted(array, key=lambda x: x["age"])
print(array_data)
 
 
#先按照成绩降序排序,相同成绩的按照名字升序排序:
dict_data = [{'name': 'alice', 'score': 38}, {'name': 'bob', 'score': 18}, {'name': 'darl', 'score': 28},
             {'name': 'christ', 'score': 28}]
dict_sorted = sorted(dict_data, key=lambda x: (-x['score'], x['name']))
print(dict_sorted)
 
 
"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/test/test01.py
[('1', 'php'), ('c', 'c++'), ('python', 'java')]
[('python', 'java'), ('c', 'c++'), ('1', 'php')]
[{'age': 10, 'name': 'c'}, {'age': 20, 'name': 'a'}, {'age': 25, 'name': 'b'}]
[{'name': 'alice', 'score': 38}, {'name': 'christ', 'score': 28}, {'name': 'darl', 'score': 28}, {'name': 'bob', 'score': 18}]
 
Process finished with exit code 0

三、sort ()与sorted()区别:

sort()是应用在list上的方法,sorted()可以对所有可迭代的对象进行排序操作。

list的sort()方法返回的是对已经存在的列表进行操作,无返回值,而内建函数sorted()方法返回的是一个新的list,而不是在原来的基础上进行的操作。

四、冒泡排序

是最常见到的排序算法,也是很基础的一种排序算法。它的实现思想是:相邻的两个元素进行比较,然后把较大的元素放到后面(正向排序),在一轮比较完后最大的元素就放在了最后一个位置,像鱼儿在水中吐的气泡在上升的过程中不断变大

代码语言:python
代码运行次数:0
复制
list3=["3","9","1","A","p"]
for i in range(len(list3)):
    for j in range(i+1,len(list3)):
        if list3[i]>list3[j]:
            list3[i],list3[j]=list3[j],list3[i]
print(list3)
 
"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/test/test01.py
['1', '3', '9', 'A', 'p']
 
Process finished with exit code 0

五、选择排序

选择排序的思路是:第一轮的时候,所有的元素都和第一个元素进行比较,如果比第一个元素大,就和第一个元素进行交换,在这轮比较完后,就找到了最小的元素;第二轮的时候所有的元素都和第二个元素进行比较找出第二个位置的元素,以此类推。

代码语言:python
代码运行次数:0
复制
list4=["3","9","1","2","4"]
for i in range(len(list4)-1,0,-1):
    for j in range(i):
        if list4[j]>list4[i]:
            list4[j], list4[i] = list4[i], list4[j]
print(list4)
 
 
"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/test/test01.py
['1', '2', '3', '4', '9']
 
Process finished with exit code 0
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 橙子探索测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、sort()方法:
  • 二、sorted()函数:
  • 三、sort ()与sorted()区别:
  • 四、冒泡排序
  • 五、选择排序
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档