Python程式語言--列表簡介
列表的定義
列表 由一系列按特定順序排列的元素組成。在Python中,用方括號([])來表示列表,並用逗號來分隔其中的元素。列表是有序集合,因此要訪問列表的任何元素,只需將該元素的位置或索引告訴Python即可。要訪問列表元素,可指出列表的名稱,再指出元素的索引,並將其放在方括號內。
在Python中,第一個列表元素的索引為0,而不是1。Python為訪問最後一個列表元素提供了一種特殊語法:通過將索引指定為-1 ,可讓Python返回最後一個列表元素。索引-2 返回倒數第二個列表元素,索引-3 返回倒數第三個列表元素,以此類推。
#返回bicycles列表中的最後一個元素
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[-1])
修改、新增和刪除元素
修改列表元素
修改列表元素的語法與訪問列表元素的語法類似。要修改列表元素,可指定列表名和要修改的元素的索引,再指定該元素的新值。
#輸出結果為['honda', 'yamaha', 'suzuki']
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
#輸出結果為['ducati', 'yamaha', 'suzuki']
motorcycles[0] = 'ducati'
print(motorcycles)
在列表中新增元素
1.在列表末尾新增元素
#使用append()函式在列表的結尾新增函式
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles.append('ducati')
print(motorcycles)
#輸出結果為:['honda', 'yamaha', 'suzuki']
# ['honda', 'yamaha', 'suzuki', 'ducati']
方法append() 讓動態地建立列表易如反掌,例如,你可以先建立一個空列表,再使用一系列的append() 語句新增元素。下面來建立一個空列表,再在其中新增元素’honda’ 、’yamaha’ 和’suzuki’ :
motorcycles = []
motorcycles.append('honda')
motorcycles.append('yamaha')
motorcycles.append('suzuki')
print(motorcycles)
#輸出結果:['honda', 'yamaha', 'suzuki']
2.在列表中插入元素
使用方法insert() 可在列表的任何位置新增新元素。下列方法insert() 在索引0 處新增空間,並將值’ducati’ 儲存到這個地方。這種操作將列表中既有的每個元素都右移一個位置。同理,若要在索引1處新增空間,將列表中原先索引為1及其索引在1之後的元素都向右移一個位置。
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.insert(0, 'ducati')
print(motorcycles)
#輸出結果:['ducati', 'honda', 'yamaha', 'suzuki']
從列表中刪除元素
1.使用del語句刪除元素
#若知道要刪除的元素在列表中的位置,可使用del語句
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
#輸出:['honda', 'yamaha', 'suzuki']
del motorcycles[0]
print(motorcycles)
#輸出:['yamaha', 'suzuki']
2.使用方法pop() 刪除元素
#方法pop() 可刪除列表末尾的元素,並讓你能夠接著使用它。
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
#輸出結果為:['honda', 'yamaha', 'suzuki']
popped_motorcycle = motorcycles.pop()
print(motorcycles)
#輸出結果為:['honda', 'yamaha']
print(popped_motorcycle)
#輸出結果為:suzuki
#彈出列表中任何位置處的元素
motorcycles = ['honda', 'yamaha', 'suzuki']
first_owned = motorcycles.pop(0)
print(first_owned)
#輸出結果:honda
如果你不確定該使用del 語句還是pop() 方法,可以根據這個判斷標準:如果你要從列表中刪除一個元素,且不再以任何方式使用它,就使用del 語句;如果你要在刪除元素後還能繼續使用它,就使用方法pop() 。
3.根據值刪除元素
有時候,你不知道要從列表中刪除的值所處的位置。如果你只知道要刪除的元素的值,可使用方法remove() 。
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
#輸出:['honda', 'yamaha', 'suzuki', 'ducati']
motorcycles.remove('ducati')
print(motorcycles)
#輸出:['honda', 'yamaha', 'suzuki']
使用remove() 從列表中刪除元素時,也可接著使用它的值:
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
#輸出:['honda', 'yamaha', 'suzuki', 'ducati']
too_expensive = 'ducati'
motorcycles.remove(too_expensive)
print(motorcycles)
#輸出:['honda', 'yamaha', 'suzuki']
print("\nA " + too_expensive.title() + " is too expensive for me.")
#輸出:A Ducati is too expensive for me.
注意 方法remove() 只刪除第一個指定的值。如果要刪除的值可能在列表中出現多次,就需要使用迴圈來判斷是否刪除了所有這樣的值。
組織列表
1.使用方法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']
2.使用函式sorted() 對列表進行臨時排序
要保留列表元素原來的排列順序,同時以特定的順序呈現它們,可使用函式sorted() 。函式sorted() 讓你能夠按特定順序顯示列表元素,同時不影響它們在列表中的原始排列順序。
3.列表的其它操作
方法reverse()、函式len() 的使用:
#要反轉列表元素的排列順序,可使用方法reverse()
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(cars)
#輸出:['bmw', 'audi', 'toyota', 'subaru']
cars.reverse()
print(cars)
#輸出:['subaru', 'toyota', 'audi', 'bmw']
#使用函式len() 可快速獲悉列表的長度。
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(len(cars))
#輸出:4
注意 筆者沉痛的教訓,在程式設計學習的過程中,一定要嚴謹!!區分方法和函式的概念!!方法可供物件呼叫,而函式是需要引入引數才能使用的。例如以下程式碼報錯,即將方法和函式之間錯誤使用了。