Python基本語法總結(四) 列表操作.md
阿新 • • 發佈:2020-09-15
訪問列表元素
訪問列表的任何元素,只需將該元素的位置或索引告訴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']
>>>