Pyhon列表排序(升序和降序)

一、sort()方法:
list.sort(cmp=None, key=None, reverse=False)
cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。

#列表升序
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 升序(默认)。

#列表升序
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,而不是在原来的基础上进行的操作。

四、冒泡排序

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

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

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

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/568271.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql deadlock found when trying to get lock暴力解决

如若你在运行代码时出现此问题,那么此博客可以略过了。 如若你也不知道怎么操作后,突然对表进行增删查改的操作后,出现此问题,那么采用暴力解决法 方案一: 1、查询是否锁表 show OPEN TABLES where In_use >0; …

Pytest Hooks方法之pytest_runtest_makereport获取测试用例结果

pytest提供的钩子(Hooks)方法之pytest_runtest_makereport,可以更清晰的了解用例的执行过程,并获取到每个用例的执行结果。 一、Hook 方法之 pytest_runtest_makereport源码: hookspec(firstresultTrue) def pytest_runtest_makereport(ite…

服务端和客户端测试连通ip设置记录

若服务器和客户端在同一台电脑,即为本机测试,则测试都用127.0.0.1 若是服务器和客户端在两台电脑,则需要在同一局域网内,并且ip地址填写本机ip。 若是发布在云端测试,则服务端地址为0.0.0.0;客户端地址填…

Pytest Hooks方法之pytest_collection_modifyitems改变测试用例执行顺序

pytest默认执行用例顺序是根据项目下文件名称按ascii码去收集运行的,文件里的用例是从上往下按顺序执行的. pytest_collection_modifyitems 这个函数顾名思义就是收集测试用例、改变用例的执行顺序的。 一、pytest_collection_modifyitems 是测试用例收集完成后&am…

MySQL 8.0开始Group by不再排序

如题所示,mysql 8.0 开始 group by 默认是没有排序的 那mysql 8.0 之前和 8.0 就有可能结果出现不同 需要警惕 查看版本信息 rootmysql3306.sock>[employees]>show variables like %version%; ------------------------------------------------------- | V…

Python操作Jira提交BUG

Jira提供了完善的RESTful API,如果不想直接请求API接口可以使用Python的Jira库来操作Jira jira Python文档https://jira.readthedocs.io/en/latest/ 安装:pip install jira 认证:Jira的访问是有权限的,在访问Jira项目时首先要进…

mysql 导入导出大文件

mysql导入: load data local infile C:/Users/Administrator.USER-20190225BY/Desktop/test.csv into table test fields terminated by\t lines terminated by\n ignore 1 lines (xianlu,chepai,shijian,jing,wei) mysql导出: select * from mysql.te…

Pytest之pytest.assume用例中断言1失败会继续执行后续代码断言2

一般我们做自动化测试时,一个用例会写多个断言,当第一个断言失败后,后面的代码就不会执行了,于是我们引进了pytest-assume插件可以解决断言失败后继续断言的问题。 一、安装依赖包 pip install pytest-assume 二、使用assert进…

Unable to round-trip http request to upstream错误

这几天打开浏览器经常出现Unable to round-trip http request to upstream。提示。 一直以为是网速的问题。今天百度才发现是因为打开了蓝灯。赶紧关掉蓝灯即可

Pytest之pytest-assume同用例多断言,断言1失败会执行后续代码及断言2

一般我们做自动化测试时,一个用例会写多个断言,当第一个断言失败后,后面的代码就不会执行了,于是我们引进了pytest-assume插件可以解决断言失败后继续断言的问题。一、安装依赖包pip install pytest-assume二、使用assert进行断言…

无法打开包括文件: “corecrt.h”: No such file or directory

刚开始安装qt,测试是否安装成功就出现此问题,让人很头大 参考:https://blog.csdn.net/x356982611/article/details/51140807的播客 编译时候使用的是最新的sdk版本10.0.10586.0版本但是它里面没有ucrt目录,问题找到了。 看了下v…

Pytest-ordering自定义用例执行顺序

我们一般在做自动化测试时,用例设计之间应该是可以相互独立执行的,没有一定的前后依赖关系的,如果我们真的有前后依赖,想指定用例的先后顺序,可以用到pytest-ordering插件解决这个问题 1、安装依赖包 pip install pyt…

LNK2019无法解析的外部符号 public: static struct cv::Ptr class cv::xfeatures2d::SURF问题解决

原因是lib文件没有引入 opencv_xfeatures2d320d.lib opencv_features2d320d.lib 在配置opencv时,应把D:\Program Files (x86)\opencv3\opencv\build\x64\vc14\lib下所有的lib文件都添加到链接器的输入中 也有可能是你下载的opencv库中没有这个lib,而你…

Pytest参数选项在脚本中和命令行用法详解

运行pytest可以指定目录和文件,如果不指定,pytest会搜索当前目录及其子目录中以test_开头或以_test结尾得测试函数。我们把pytest搜索测试文件和测试用例的过程称为测试搜索(test discovery)。只要遵循pytest的命名规则&#xff0…

Win7下OpenCV3.2.0+VS2015配置

参考自:https://blog.csdn.net/qq_22812319/article/details/78335880 一、预备知识 1、下载opencv时,opencv与vs版本是有固定关系的。 2、vs一般使用release版本。 3、首先在下载的openCV解压目录opencv/build/x64/下查看文件夹名,如下图…

Pytest标记预期失败得测试用例@pytest.mark.xfail()

pytest除了测试函数中使用这个方法pytest.xfail()外,xfail还有一种使用方法。就是pytest.mark.xfail()标记预期会失败的用例,即期望测试用例是失败的,但是不会影响测试用例的的执行。 标记的用例运行后,断言失败,所以…

win7 vs2015配置qt5.11

1、下载vs,和qt。 qt百度网盘下载链接:https://pan.baidu.com/s/12bUt31_mXGvgc3tdJRkkkw 提取码:2swk 下载完成之后,直接进行安装,下一步。 安装的时候要根据自己的VS版本选择相应的msvc(VC运行库&…

LNK2019 无法解析的外部符号 __imp_CommandLineToArgvW,该符号在函数 WinMain 中被引用

在VS2017中新建Qt GUI 工程,无法编译,报链接错误 LNK2019 无法解析的外部符号 __imp_CommandLineToArgvW,该符号在函数 WinMain 中被引用 经比对,是lib配置问题。如歌在Qt Creator中创建工程然后再在VS2017中打开,则…

原创 | 开源AI测试专题、Jmeter测试专题

开源 AI 测试专题震惊!AI成功落地自动化测试AI 软件测试工具 Mabl 快速概览AI测试工具 Mabl - 测试用例自动自愈Sauce Labs 的持续 UI 自动化测试云疫情中诞生的 AI 测试工具:ai-webdriverAI 测试又多新花招?ai-webdriver-1.0.1 独家更新一眼…

Qt 二级菜单无法输入中文

一、qt中二级菜单无法输入中文 解决办法:写到其他地方再粘贴复制过来即可ok 二、qt界面设置后,vs中没有反应 解决方法:在vs中寻找 ui_projectname.h projectname即为你的项目名,查看其中是否已有你qt中已经声明的控件&#x…