《Python程式設計:從入門到實踐》筆記。
本章主要介紹列表的基礎與簡單操作。
1. 列表(List)是什麼
列表由一系列按特定順序排列的元素組成。
類似於C/C++, Java中的陣列,但和他們不同的是,Python列表中的元素可以是不同型別。
Python中用中括號[]
來表示列表,並用逗號分隔其中的元素。
# 程式碼:
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
# 結果:
# python列印了該列表的內部表示
['trek', 'cannondale', 'redline', 'specialized']
複製程式碼
1.1 訪問與使用列表中的元素
大多數程式語言中,索引都是從0開始的,而不是從1開始的。以下程式碼是輸出上述列表中的第1個元素:
# 程式碼:
print(bicycles[0])
print(bicycles[0].title())
message = "My first bicycle was a " + bicycles[0].title() + "."
print(message)
# 結果:
trek
Trek
My first bicycle was a Trek.
複製程式碼
Python還支援索引為負數,表示從後往前數,“-1”表示倒數第1個元素,例如:
# 程式碼:
print(bicycles[-1])
# 結果:
specialized
複製程式碼
但是,不管索引是正數還是負數,都要注意索引越界問題!
2. 修改、新增和刪除元素
2.1修改列表元素
# 程式碼:
# 修改第一個元素
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles[0] = "ducati"
print(motorcycles)
# 結果:
['honda', 'yamaha', 'suzuki']
['ducati', 'yamaha', 'suzuki']
複製程式碼
2.2 新增元素
在列表末尾新增元素:
# 程式碼:
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles.append("ducati")
print(motorcycles)
# 結果:
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha', 'suzuki', 'ducati']
複製程式碼
也可以動態建立motorcycles
列表:
# 程式碼:
motorcycles = [] # 此句很重要!表示宣告一個列表!
motorcycles.append('honda')
motorcycles.append('yamaha')
motorcycles.append('suzuki')
print(motorcycles)
# 結果:
['honda', 'yamaha', 'suzuki']
複製程式碼
在列表中插入元素:
# 程式碼:
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.insert(0, 'ducati')
print(motorcycles)
motorcycles.insert(4, 'dongfeng') # 在最後插入一個元素,相當於motorcycles.append('dongfeng')
print(motorcycles)
# 結果:
['ducati', 'honda', 'yamaha', 'suzuki']
['ducati', 'honda', 'yamaha', 'suzuki', 'dongfeng']
複製程式碼
2.3刪除元素
使用 del
語句刪除元素:知道元素在列表中的位置
# 程式碼:
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
del motorcycles[0]
print(motorcycles)
# 結果:
['honda', 'yamaha', 'suzuki']
['yamaha', 'suzuki']
複製程式碼
del
可刪除任意位置的列表元素,前提是知道其索引
使用 pop()
方法刪除元素:會返回被刪除的元素,當對被刪除的元素還有後續操作時使用此方法。
預設刪除列表最後一個元素,當傳入引數(作為索引)時,刪除指定位置的元素(但請注意越界問題):
# 程式碼:
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
last_owned = motorcycles.pop() # 預設
print("The last motorcycle I owned was a " + last_owned.title() + ".")
print(motorcycles)
motorcycles.pop(1) # 傳入引數
print(motorcycles)
# 結果:
['honda', 'yamaha', 'suzuki']
The last motorcycle I owned was a Suzuki.
['honda', 'yamaha']
['honda']
複製程式碼
所以,pop()
方法也可以刪除任意位置的元素
根據值刪除元素的 remove()
方法:當不知道元素索引,但知道元素值時
# 程式碼:
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
motorcycles.remove('ducati')
print(motorcycles)
# 結果:
['honda', 'yamaha', 'suzuki', 'ducati']
['honda', 'yamaha', 'suzuki']
複製程式碼
注意,如果列表中有多個相同的值,romve()
方法只刪除第一個
3. 組織列表
3.1 排序
sort()
方法對列表永久排序(原地操作):
# 程式碼:
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)
# 結果:
['audi', 'bmw', 'subaru', 'toyota']
複製程式碼
如果不想修改原列表,則應使用以下方法。
使用 sorted()
函式對列表進行臨時排序:
# 程式碼:
cars = ['bmw', 'audi', 'toyota', 'subaru']
print("Here is the original list:")
print(cars)
print("\nHere is ths 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 ths sorted list:
['audi', 'bmw', 'subaru', 'toyota']
Here is the original list again:
['bmw', 'audi', 'toyota', 'subaru']
複製程式碼
不管是sort()
方法還是 sorted()
函式,如果想反向排序,只需要傳入關鍵字引數reverse=True
:
cars.sort(reverse=True)
sorted(cars, reverse=True)
複製程式碼
以上兩種排序是按ASCII
碼進行的排序,如果想自定義排序,需要傳入自定義比較函式。
反向列印列表:reverse()
方法,也是原地操作!並且這只是反向列印列表的實現方法之一
# 程式碼:
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(cars)
cars.reverse() # 注意!並沒有排序後再反向!
print(cars)
# 結果:
['bmw', 'audi', 'toyota', 'subaru']
['subaru', 'toyota', 'audi', 'bmw']
複製程式碼
3.2 確定列表長度
使用 len()
函式獲得列表長度:
# 程式碼:
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(len(cars))
# 結果:
4
複製程式碼
迎大家關注我的微信公眾號"程式碼港" & 個人網站 www.vpointer.net ~