1. 程式人生 > 實用技巧 >Python基本語法總結(四) 列表操作.md

Python基本語法總結(四) 列表操作.md

訪問列表元素

訪問列表的任何元素,只需將該元素的位置或索引告訴Python即可。

>>>bicycles = ['trek', 'cannondale', 'redline', 'specialized'] 
>>>print(bicycles[0])
trek
>>> print(bicycles[-1])
specialized
>>> 

修改列表元素

要修改列表元素,可指定列表名和要修改的元素的索引,再指定該元素的新值。

>>> motorcycles = ['honda', 'yamaha', 'suzuki']
>>> print(motorcycles)
['honda', 'yamaha', 'suzuki']
>>> motorcycles[0]='ducati'
>>> print(motorcycles)
['ducati', 'yamaha', 'suzuki']
>>> 

在列表中新增元素

方法append()將元素'ducati'新增到了列表末尾,而不影響列表中的其他所有元素。

>>> motorcycles = ['honda', 'yamaha', 'suzuki']
>>> print(motorcycles)
['honda', 'yamaha', 'suzuki']
>>> motorcycles.append('ducati')
>>> print(motorcycles)
['honda', 'yamaha', 'suzuki', 'ducati']

使用方法insert()可在列表的任何位置新增新元素,為此需要指定新元素的索引和值。

>>> motorcycles = ['honda', 'yamaha', 'suzuki']
>>> motorcycles.insert(1,'ducati')  # 在索引為1的地方插入元素
>>> print(motorcycles)
['honda', 'ducati', 'yamaha', 'suzuki']
>>> 

在列表中刪除元素

如果知道要刪除的元素在列表中的位置,可使用del語句。

>>> motorcycles = ['honda', 'yamaha', 'suzuki']
>>> print(motorcycles)
['honda', 'yamaha', 'suzuki']
>>> del motorcycles[1]
>>> print(motorcycles)
['honda', 'suzuki']
>>> 

使用方法pop()刪除元素,可刪除列表末尾的元素,並讓你能夠接著使用它。

>>> motorcycles = ['honda', 'yamaha', 'suzuki']
>>> print(motorcycles)
['honda', 'yamaha', 'suzuki']
>>> popped_motorcycle = motorcycles.pop()
>>> print(motorcycles)
['honda', 'yamaha']
>>> print(popped_motorcycle)
suzuki
>>> 

可以使用pop()來刪除列表中任何位置的元素,只需在括號中指定要刪除的元素
的索引即可。

>>> motorcycles = ['honda', 'yamaha', 'suzuki']
>>> second_owned = motorcycles.pop(1)
>>> print(motorcycles)
['honda', 'suzuki']
>>> print(second_owned)
yamaha
>>> 

如果你知道要刪除的元素的值,可使用方法remove()。(如果要刪除的值可能在列表中出現多次,就需要使用迴圈來判斷是否刪除了所有這樣的值。)

>>> motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati','suzuki']
>>> motorcycles.remove('suzuki')
>>> print(motorcycles)
['honda', 'yamaha', 'ducati', 'suzuki'] # 只刪除了第一個
>>> 

對列表進行排序

Python方法sort()讓你能夠較為輕鬆地對列表進行排序。

>>> cars = ['bmw', 'audi', 'toyota', 'subaru']
>>> cars.sort()
>>> print(cars)
['audi', 'bmw', 'subaru', 'toyota']
>>> 

要保留列表元素原來的排列順序,同時以特定的順序呈現它們,可使用函式sorted()。

>>> cars = ['bmw', 'audi', 'toyota', 'subaru']
>>> print(sorted(cars))
['audi', 'bmw', 'subaru', 'toyota']
>>> print(cars) # 原列表不變
['bmw', 'audi', 'toyota', 'subaru']
>>> 

將列表倒序

要反轉列表元素的排列順序,可使用方法reverse()。

>>> cars = ['bmw', 'audi', 'toyota', 'subaru']
>>> print(cars)
['bmw', 'audi', 'toyota', 'subaru']
>>> cars.reverse()
>>> print(cars)
['subaru', 'toyota', 'audi', 'bmw']
>>> 

遍歷列表

>>> cars = ['bmw', 'audi', 'toyota', 'subaru']
>>> for idx in range(len(cars)):    # 利用下表遍歷列表
	print('idx:',idx,'--->','element:',cars[idx])

idx: 0 ---> element: bmw
idx: 1 ---> element: audi
idx: 2 ---> element: toyota
idx: 3 ---> element: subaru
>>> for element in cars:    # 利用元素遍歷列表
	print(element)

bmw
audi
toyota
subaru
>>> 

對列表切片

要建立切片,可指定要使用的第一個元素和最後一個元素的索引。例如要指定列表的第10-15個元素,可指定索引分別為9(10-1)和15;要指定列表的第1-3個元素,可指定索引分別為0(1-1)和3。如果沒有指定第一個索引,Python將自動從列表開頭開始;如果沒有指定第二個索引,Python將自動擷取到列表結尾

>>> players = ['charles', 'martina', 'michael', 'florence', 'eli']
>>> print(players[0:3]) # 指定第1-3個元素
['charles', 'martina', 'michael']
>>> print(players[1:4]) # 指定第2-4個元素
['martina', 'michael', 'florence']
>>> print(players[2:])  # 指定第3個及之後元素
['michael', 'florence', 'eli']
>>> print(players[:2])  # 指定第2個及之前元素
['charles', 'martina']
>>> 

對列表進行復制

若直接使用賦值運算子進行賦值,實際上類似淺拷貝,兩個變數最終指向同一個列表。若想深拷貝,使用切片[:]。

>>> players = ['charles', 'martina', 'michael', 'florence', 'eli']
>>> players_1 = players # 淺拷貝
>>> players_2 = players[:]  # 深拷貝
>>> players[2]='changed'
>>> print(players)
['charles', 'martina', 'changed', 'florence', 'eli']
>>> print(players_1)    # 元素髮生改變
['charles', 'martina', 'changed', 'florence', 'eli']
>>> print(players_2)    # 元素沒有發生改變
['charles', 'martina', 'michael', 'florence', 'eli']
>>>