目錄
一、用sort()函數對列表進行永久排序
二、用sorted()函數對列表進行臨時排序?
三、用reverse()函數對列表進行列表原始排序的逆序輸出
四、使用len()函數確定列表長度
? ? ? ?創建列表后,內部的元素逐漸增多,其排列順序也是無法預測的,因為用戶并非總能控制用戶提供數據的順序。由此,我們經常需要以特定的順序呈現信息。
一、用sort()函數對列表進行永久排序
sort()函數可以幫助我們較為方便的對列表進行排序,有如下特點:
sort函數的原型為:sort(self,key,reverse=False),可以看出有三個參數!(這里的reverse=False是默認的,所以直接為最后一個參數賦值了)
self:參數self是表明該sort函數是使用何種算法進行排序的,一般是歸并排序。目前,我們還無需重寫此參數,所以在使用時可以忽略此函數
key:參數key用來指定一個函數,此函數代表排序的規則(也就是你按照什么規則對你的序列進行排序),在每次排序時調用;
reverse:參數reverse是用來表明是否逆序,默認是等于False,按照升序的規則進行排序的。當reverse=True時,便會按照降序進行排序。我們一般經常修改此參數。
代碼說明:
cars=["BMW","Audi","Toyota","Subaru","BYD"]
print(cars)#打印列表
cars.sort()#按字母順序排序
print(cars)#打印排序后的列表
cars.sort(reverse=True)#按字母順序的逆序排序
print(cars)#打印排序后的列表
?注:在排序時,如果列表中元素開頭字母,大小寫不一致,那么調用此函數后的排序效果可能不是大家所想的那樣!
有如下實驗:假如元素開頭字母相同,則何如?
cars=["BBM","BDC","BDA","BYD"]
print(cars)#打印列表
cars.sort()#按字母順序排序
print(cars)#打印排序后的列表
?由上述實驗可以看出,在字母大小寫一致的情況下,以字典序為例:sort()函數會先比較各個元素的首字母,如果發現元素的首字母相同,則會比較第二個字母,其他同理。總之排序之后的結果一定是:元素首字母不同,則是字典序;首字母相同的,第二個字母是字典序!
二、用sorted()函數對列表進行臨時排序?
可以使用sorted()函數對列表進行臨時排序,不影響他們在列表中的原始排序?
?代碼說明:
cars=["BMW","Audi","Toyota","Subaru"]
print("這是原始序列:")
print(cars)#打印原始列表
print("這是按字典序排序后的臨時序列:")
print(sorted(cars))#打印排序后的列表
print("再次輸出原始序列:(證明是不改變原始序列的排序)")
print(cars)#再次輸出原始序列說明沒有變化
?
當然也可以向sorted()函數傳遞按字典序逆序排序,上述代碼修改成如下代碼即可:
print(sorted(cars,reverse=True))#打印排序后的列表
三、用reverse()函數對列表進行列表原始排序的逆序輸出
?正如函數名“reverse”,這個函數的功能就是將列表中的元素“翻轉”。例如:list=["A","B","C"],使用rverse()函數后,列表變為list=["C","B","A"]。這種“翻轉”是永久的,如果想要恢復到原來的順序,再次使用以下本函數就OK了!有如下代碼:
cars=["BMW","Audi","Toyota","Subaru"]
print("這是原始序列:")
print(cars)#打印原始列表
cars.reverse()
print("這是”翻轉“后的序列:")
print(cars)
四、使用len()函數確定列表長度
想要盡快知道列表的長度(列表中元素的數量),就需要使用len()函數!
代碼舉例:
cars=["BMW","Audi","Toyota","Subaru"]
print("cars列表的長度為:",len(cars))
?這里的計數是從1開始的,所以不會出現“列表元素的數量”差“1”的現象
?本節課的內容較少,但是需要慢慢消化。
?
?