Python之列表的排序

2021-09-29 12:17:44 字數 1968 閱讀 7548

python方法sort()讓你能夠較為輕鬆地對列表進行排序。假設你有乙個汽車列表,並要讓其 中的汽車按字母順序排列。為簡化這項任務,我們假設該列表中的所有值都是小寫的  

cars = ['bmw', 'audi', 'toyota', 'subaru'] 

cars.sort()

print(cars)

['audi', 'bmw', 'subaru', 'toyota']
方法sort()永久性地修改了列表元素的排列順序。現在,汽車是按字母順序排列的, 再也無法恢復到原來的排列順序。

你還可以按與字母順序相反的順序排列列表元素,為此,只需向sort()方法傳遞引數 reverse=true。

cars = ['bmw', 'audi', 'toyota', 'subaru'] 

cars.sort(reverse=true)

print(cars)

['toyota', 'subaru', 'bmw', 'audi']
同樣,對列表元素排列順序的修改是永久性的

要保留列表元素原來的排列順序,同時以特定的順序呈現它們,可使用函式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。 

要反轉列表元素的排列順序,可使用方法reverse()。假設汽車列表是按購買時間排列的, 可輕鬆地按相反的順序排列其中的汽車: 

cars = ['bmw', 'audi', 'toyota', 'subaru'] 

print(cars)

cars.reverse()

print(cars)

['bmw', 'audi', 'toyota', 'subaru']

['subaru', 'toyota', 'audi', 'bmw']

注意,reverse()不是指按與字母順序相反的順序排列列表元素,而只是反轉列表元素的排 列順序

方法reverse()永久性地修改列表元素的排列順序,但可隨時恢復到原來的排列順序,為此 只需對列表再次呼叫reverse()即可

使用函式len()可快速獲悉列表的長度

每當需要訪問最後乙個列表元素時,都可使用索引-1。這在任何情況下都行之有效

僅當列表為空時,這種訪問最後乙個元素的方式才會導致錯誤

注意

發生索引錯誤卻找不到解決辦法時,請嘗試將列表或其長度列印出來。列表可能與你以 為的截然不同,在程式對其進行了動態處理時尤其如此。通過檢視列表或其包含的元素 數,可幫助你找出這種邏輯錯誤

Python 之列表的方法

列表被建立還可以使用list類的方法簡化操作方法 作用說明 將元素新增到列表的末尾 count elem int 返回元素elem在列表 現的次數 extend other list none 將列表other list中的所有元素追加到當前列表中 index elem int 返回元素elem在列...

python之列表操作

列表操作功能彙總 print 列表操作功能彙總 list demo first second thrid fourth 複製list demo列表取名list list list demo print 原列表為 list print print 輸出列表第乙個元素 list 0 print 輸出列表...

Python入門之列表

python中的列表類似於c語言中的陣列,下面通過例項說明介紹幾種常用的使用方法。1.空列表的建立 empty print empty 2.列表中元素的檢視 words a b c print words 2 c print words 3 traceback most recent call la...