程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python中sort()和sorted()的區別及用法實例

編輯:Python

目錄

一、

二、

python中輸入字符串轉列表的注意問題

總結

本文主要講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] = 1str_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(",")

其實,一般當使用空格間隔的時候,才容易出現上述問題。

總結

到此這篇關於python中sort()和sorted()區別及用法的文章就介紹到這了,更多相關python sort()和sorted()區別內容請搜索軟件開發網以前的文章或繼續浏覽下面的相關文章希望大家以後多多支持軟件開發網!



  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved