Python學習之路2-列表介紹

VPointer發表於2018-05-29

《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 ~

Python學習之路2-列表介紹

相關文章