【編測編學】零基礎學python_08_列表(排序+反轉+長度)

bcbxhome發表於2020-11-21

在你建立的列表中,元素的排列順序常常是無法預測的,因為你並非總能控制使用者提供資料的順序。這雖然在大多數情況下都是不可避免的,但你經常需要以特定的順序呈現資訊。有時候,你希望保留列表元素最初的排列順序,而有時候又需要調整排列順序。Python提供了很多組織列表的方式,可根據具體情況選用。 



1.使用方法sort() 對列表進行永久性排序 
Python方法sort() 讓你能夠較為輕鬆地對列表進行排序。假設你有一個汽車列表,並要讓其中的汽車按字母順序排列。為簡化這項任務,我們假設該列表中的所有值都是小寫的。
cars = ['bmw', 'audi', 'toyota', 'subaru'] 
cars.sort() 
print(cars)方法sort() 永久性地修改了列表元素的排列順序。現在,汽車是按字母順序排列的,再也無法恢復到原來的排列順序: 



你還可以按與字母順序相反的順序排列列表元素,為此,只需向sort() 方法傳遞引數reverse=True 。下面的示例將汽車列表按與字母順序相反的順序排列: 
cars = ['bmw', 'audi', 'toyota', 'subaru'] 
cars.sort(reverse=True) 
print(cars) 
同樣,對列表元素排列順序的修改是永久性的: 
['toyota', 'subaru', 'bmw', 'audi'] 



2.使用函式sorted() 對列表進行臨時排序
要保留列表元素原來的排列順序,同時以特定的順序呈現它們,可使用函式sorted() 。函式sorted() 讓你能夠按特定順序顯示列表元素,同時不影響它們在列表中的原始排列順序。 
下面嘗試對汽車列表呼叫這個函式。 
cars = ['bmw', 'audi', 'toyota', 'subaru'] 
print("Here is the original list:") 
print(cars) 
print("\nHere is the sorted list:") 
print(sorted(cars)) 
print("\nHere is the original list again:") 
print(cars) 
我們首先按原始順序列印列表,再按字母順序顯示該列表。以特定順序顯示列表後,我們進行核實,確認列表元素的排列順序與以前相同。 
Here is the original list: 
['bmw', 'audi', 'toyota', 'subaru'] 
Here is the sorted list: 
['audi', 'bmw', 'subaru', 'toyota'] 
Here is the original list again: 
['bmw', 'audi', 'toyota', 'subaru'] 
注意,呼叫函式sorted() 後,列表元素的排列順序並沒有變。如果你要按與字母順序相反的順序顯示列表,也可向函式sorted() 傳遞引數reverse=True 。 
注意在並非所有的值都是小寫時,按字母順序排列列表要複雜些。決定排列順序時,有多種解讀大寫字母的方式,要指定準確的排列順序,可能比我們這裡所做的要複雜。然而,大多數排序方式都基於本節介紹的知識。 



3.倒著列印列表
要反轉列表元素的排列順序,可使用方法reverse() 。假設汽車列表是按購買時間排列的,可輕鬆地按相反的順序排列其中的汽車: 
cars = ['bmw', 'audi', 'toyota', 'subaru'] 
print(cars) 
cars.reverse() 
print(cars) 
注意,reverse() 不是指按與字母順序相反的順序排列列表元素,而只是反轉列表元素的排列順序: 
['bmw', 'audi', 'toyota', 'subaru'] 
['subaru', 'toyota', 'audi', 'bmw'] 
方法reverse() 永久性地修改列表元素的排列順序,但可隨時恢復到原來的排列順序,為此只需對列表再次呼叫reverse() 即可。 



4.確定列表的長度
使用函式len() 可快速獲悉列表的長度。在下面的示例中,列表包含4個元素,因此其長度為4: 
>>> cars = ['bmw', 'audi', 'toyota', 'subaru'] 
>>> len(cars) 
在你需要完成如下任務時,len() 很有用:確定還有多少個外星人未被射殺,需要管理多少項視覺化資料,網站有多少註冊使用者等。 
注意 Python計算列表元素數時從1開始,因此確定列表長度時,你應該不會遇到差一個的錯誤。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69985967/viewspace-2735771/,如需轉載,請註明出處,否則將追究法律責任。

相關文章