網站首頁 編程語言 正文
本文主要講sort與sorted的主要區別,以便正確使用
一、
- sort()只能用于列表;sorted()可以用于所有可迭代對象;
比如:
str_a = "blue" print(sorted(str_a)) >>>['b', 'e', 'l', 'u']
二、
- sort()對列表排序是進行原處排序,并不會返回新的列表;
- sorted()排序后會返回一個新的列表;
比如:
對于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()方法。
- 還有一點淺層的就是,sort()因為是原處排序,所以對原列表進行了修改。如果你不想改變原列表,那么python提供了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中輸入字符串轉列表的注意問題
python中使用input()來從鍵盤輸入字符串 而這個操作稍微不注意 ==會出現一些問題,== 比如說將輸入的字符串轉為列表:
a = input() lis = list(a) print(lis)
當你輸入一行字符串以空格間隔時:
那么你可能會想我把a中空格去掉就ok了,你可能會想到使用replace方法。==但是如果你輸入負數呢?==
所以面對這些問題,我們可以使用split()方法:
a = input().split() lis = list(a) print(lis)
當以空格間隔的時候split()括號內不需要放任何參數:
如果你用逗號間隔,那么需要改為:input().split(",")
其實,一般當使用空格間隔的時候,才容易出現上述問題。
總結
原文鏈接:https://juejin.cn/post/7112029773886881805
相關推薦
- 2023-06-13 C語言中求余運算符的使用解讀_C 語言
- 2023-05-23 手把手教你如何一眼分辨是C還是C++_C 語言
- 2023-03-01 C++?使用?new?創建二維數組實例_C 語言
- 2022-01-06 解決 el-form 異步校驗導致重復校驗的問題
- 2022-07-13 Linux OS 運行python腳本中smtplib has no attribute SMTP_
- 2022-03-14 springboot下Static變量通過@Value和set方法注入失敗的問題和解決辦法
- 2022-10-30 詳解Golang如何實現一個環形緩沖器_Golang
- 2024-03-28 Springboot maven加入本地jar,提示找不到類
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支