Python的sort与sorted正确用法是什么,有何差异
Admin 2022-08-09 群英技术资讯 1188 次浏览
这篇文章主要讲解了“Python的sort与sorted正确用法是什么,有何差异”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。比如:
str_a = "blue" print(sorted(str_a)) >>>['b', 'e', 'l', 'u']
比如:
对于sort()来说: lis_a = [5,4,3,2,1] lis_a.sort() print(lis_a) >>>[1, 2, 3, 4, 5] 对于sorted()来说: lis_a = [5,4,3,2,1] lis_b = sorted(lis_a) print(lis_a) print(lis_b) >>>[5, 4, 3, 2, 1] >>>[1, 2, 3, 4, 5]
下面是我的个人理解,可能并不全对,如有纰漏望指正。 我认为,因为列表是可变序列,所以可以原地修改,也即可以原地排序。但是对于字符串等可迭代对象来说,是属于不可变的,是不可以原处修改的。sort()方法属于原地修改,所以可能只能用于列表,对于其他不可变的可迭代对象就创造了另一种sorted()方法。
比如:
可变序列:lis_a = ['a','b','c','d','e','f'] 不可变序列:str_a = "abcdef" lis_a[0] = 1 str_a[0] = 1 #序列均可进行下标索引操作 print(lis_a) print(str_a)
那么就会报错

但是对于列表来说则是:

python中使用input()来从键盘输入字符串 而这个操作稍微不注意 ==会出现一些问题,== 比如说将输入的字符串转为列表:
a = input() lis = list(a) print(lis)
当你输入一行字符串以空格间隔时:

那么你可能会想我把a中空格去掉就ok了,你可能会想到使用replace方法。==但是如果你输入负数呢?==

所以面对这些问题,我们可以使用split()方法:
a = input().split() lis = list(a) print(lis)
当以空格间隔的时候split()括号内不需要放任何参数:

如果你用逗号间隔,那么需要改为:input().split(",")

其实,一般当使用空格间隔的时候,才容易出现上述问题。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
python的jieba库干什么的?一些刚接触Python的朋友可能对jieba库不是很了解,因此这篇文章就给大家来介绍一下,jieba库的作用、jieba库的安装以及jieba库的使用,感兴趣的朋友就继续往下看吧。
pyenv是管理python版本的工具。安装pyenv后,可以管理各种python版本,并且各个版本的环境完全独立,互不干扰。今天通过本文给大家分享Python中Pyenv virtualenv插件的使用,感兴趣的朋友一起看看吧
在聊天工具大肆侵入我们生活各个方面的今天,各种消息无时无刻不在侵扰我们的每一寸时间,这种情况下,一个聊天的机器人就很有必要了.今天,我们来学习一下使用 Python 开发一个钉钉的应答机器人,助你「人生苦短,少回消息」,需要的朋友可以参考下
这篇文章给大家分享的是有关用python实现自动清理文件的功能的内容,文件夹中的很多旧文件常常容易被忽视,我们通过自动清理文件的功能就能不费事的清理这些文件,释放空间。小编觉得挺实用的,因此分享给大家做个参考,接下来一起跟随小编看看吧。
这篇文章主要介绍了python中列表添加的四种方法小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008