【Python3.7學習筆記】四、列表

【Python3.7學習筆記】四、列表

學習筆記目錄

【Python3.7學習筆記】一、環境搭建
【Python3.7學習筆記】二、第一個python程序
【Python3.7學習筆記】三、變量和簡單數據類型
【Python3.7學習筆記】四、列表
【Python3.7學習筆記】五、字典

目錄

列表

列表由一系列按特定順序排列的元素組成。python使用[]來表示列表,並用逗號來分隔其元素。例如:

# 自行車列表
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)

輸出結果:


[‘trek’, ‘cannondale’, ‘redline’, ‘specialized’]


訪問列表元素

列表是有序集合,因此要訪問列表的任何元素,只需將該元素的位置或索引告訴Python解釋器即可。將索引號放入方括號中。各式:列表名[索引],例如:

# 自行車列表
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0])

輸出結果:


trek


列表索引

  • python,索引從0開始
# 自行車列表
bicycles = ['trek', 'cannondale', 'redline', 'specialized']

# 訪問列表元素,使用下標訪問,索引從0開始而不是1開始
print(bicycles[0])
print(bicycles[1])
print(bicycles[3])

輸出結果:


trek
cannondale
specialized


  • 特殊語法
    python爲訪問最後一個列表元素提供了一種特殊語法。通過將索引指定爲-1,可讓python返回最後一個列表元素,這種語法很有用,因爲你經常需要在不知道列表長度的情況下訪問最後的元素。這種約定也適用於其他負數索引,例如,索引-2返回倒數第二個列表元素,索引-3返回倒數第三個列表元素,以此類推
# 最後的元素
print(bicycles[-1])

# 倒數第二個元素
print(bicycles[-2])

# 倒數第三個元素
print(bicycles[-3])

修改列表元素

修改列表元素的語法和訪問列表元素的語法類似。各式:列表名[索引]=新值,如:

# 修改元素
motocycles = ['honda', 'yamaha', 'suzuki']
print(motocycles)

motocycles[0] = 'ducati'
print(motocycles)

輸出結果:


[‘honda’, ‘yamaha’, ‘suzuki’]
[‘ducati’, ‘yamaha’, ‘suzuki’]


返回目錄

添加元素到列表

使用append()在列表末尾添加元素

在列表中添加新元素時,最簡單的方式是將元素添加到列表末尾。例如:

# 1、使用append()方法在列表末尾增加一個元素
motocycles = ['honda', 'yamaha', 'suzuki']
motocycles.append('ducati')
print(motocycles)

輸出結果:


[‘honda’, ‘yamaha’, ‘suzuki’, ‘ducati’]


append()能動態的創建列表,如下:先創建一個空列表,然後添加元素。

motocycles = []
motocycles.append('honda')
motocycles.append('yamaha')
motocycles.append('suzuki')
motocycles.append('ducati')
print(motocycles)

輸出結果:


[‘honda’, ‘yamaha’, ‘suzuki’, ‘ducati’]


使用insert()在列表的任何位置添加元素

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

# 2、使用方法insert()可在列表的任何位置添加新元素。
# 爲此,你需要指定新元素的索引和值
motocycles = ['honda', 'yamaha', 'suzuki']
motocycles.insert(0,'ducati')
print(motocycles)

輸出結果:


[ ‘ducati’,’honda’, ‘yamaha’, ‘suzuki’]


返回目錄

從列表刪除元素

使用del()刪除元素

使用del()函數刪除元素,只需提供元素在列表中的位置索引即可,如:

# 1、使用del語句刪除元素,
# 如果知道要刪除的元素在列表中的位置,
# 可使用del語句
motocycles = ['honda', 'yamaha', 'suzuki']
del motocycles[0]
print(motocycles)

輸出結果:


[ ‘yamaha’, ‘suzuki’]


使用pop()刪除元素

方法pop()可刪除列表末尾的元素,並能繼續使用它的值,類似與,彈出棧頂元素,如:

# 2、使用pop()刪除元素,
# 方法pop()可刪除列表末尾的元素,
# 並讓你能夠接着使用它
motocycles = ['honda', 'yamaha', 'suzuki']
print(motocycles)
popped_motocycle = motocycles.pop()
print(motocycles)
print(popped_motocycle)

輸出結果:


[‘honda’, ‘yamaha’, ‘suzuki’]
[‘honda’, ‘yamaha’]
suzuki


使用pop()刪除任何位置的元素

值需要提供刪除元素的索引即可,如:

# 3、彈出列表中任何位置的元素
motocycles = ['honda', 'yamaha', 'suzuki']
print("11")
print(motocycles)
first_owned = motocycles.pop(1)
print(motocycles)
second_owned = motocycles.pop(0)
print("22")
print(motocycles)
print("first_owned=="+first_owned)
print("second_owned=="+second_owned)

輸出結果:


11
[‘honda’, ‘yamaha’, ‘suzuki’]
[‘honda’, ‘suzuki’]
22
[‘suzuki’]
first_owned==yamaha
second_owned==honda


當你使用pop()時,被彈出的元素就不在列表中了,如果你不能確定該使用del()還是pop(),判斷標準:

  • 如果你要從列表中刪除一個元素,且不再以任何方式使用它,就使用del()
  • 如果你要做刪除元素後還能繼續使用它,就使用pop()

使用remove()根據值刪除元素

有時候,你不知道要從列表中刪除的值所處位置。如果你只知道要刪除元素的值,可使用方法remove(),如:

# 4、根據值刪除元素
# 如果你不知道要從列表中刪除的值所處的位置。
# 如果你只知道要刪除的元素的值,
# 可使用方法remove()
motocycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motocycles)

motocycles.remove('ducati')
print(motocycles)

輸出結果:


[‘honda’, ‘yamaha’, ‘suzuki’, ‘ducati’]
[‘honda’, ‘yamaha’, ‘suzuki’]


使用remove()從列表中刪除元素時,也可接着使用它的值,如:

# 使用remove()從列表中刪除元素時,也可接着使用它的值
motocycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motocycles)

too_expensive = 'ducati'
motocycles.remove(too_expensive)
print(motocycles)
print("\nA "+too_expensive+" is too expensive for me!")

輸出結果:


[‘honda’, ‘yamaha’, ‘suzuki’, ‘ducati’]
[‘honda’, ‘yamaha’, ‘suzuki’]

A ducati is too expensive for me!


注意:方法remove()只刪除第一個指定的值。如果要刪除的值可能在列表中出現多次,就需要使用循環來判斷是否刪除了所有這樣的值。

返回目錄

使用sort()對列表進行永久性排序

假設你有一個汽車列表,並要讓其中的汽車按字母順序排列,如:

# 方法sort()對列表進行排序
# 假設你有一個汽車列表,並要讓其中的汽車按字母順序排列。
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)

輸出結果:


[‘audi’, ‘bmw’, ‘subaru’, ‘toyota’]


可以按與字母順序相反的順序排列列表元素,爲此,只需向sort()方法傳遞參數reverse=True 如:

# 可以按與字母順序相反的順序排列列表元素,
# 爲此,只需向sort()方法傳遞參數reverse=True
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort(reverse=True)
print(cars)

輸出結果:


[‘toyota’, ‘subaru’, ‘bmw’, ‘audi’]


使用sorted()對列表進行臨時性排序

使用函數sorted()對列表進行臨時排序,不影響列表原始順序,如:

# 使用函數sorted()對列表進行臨時排序
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(cars)
print(sorted(cars))
print(cars)

輸出結果:


[‘bmw’, ‘audi’, ‘toyota’, ‘subaru’]
[‘audi’, ‘bmw’, ‘subaru’, ‘toyota’]
[‘bmw’, ‘audi’, ‘toyota’, ‘subaru’]


使用reverse()反轉列表

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

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

cars.reverse()
print(cars)

輸出結果:


[‘bmw’, ‘audi’, ‘toyota’, ‘subaru’]
[‘subaru’, ‘toyota’, ‘audi’, ‘bmw’]


注意:reverse()不是指按與字母順序相反的順序排列列表原始,而只是反轉列表元素的排列順序,方法reverse()永久性的修改列表元素的排列順序,但是可隨時恢復到原來的排列順序,爲此再次調reverse()方法即可。

使用len()計算列表長度

使用len()計算列表長度,如:

# 列表的長度
motocycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print("cars列表的長度:"+str(len(cars)))

輸出結果:


cars列表的長度:4


返回目錄

遍歷列表

循環列表

# 遍歷列表
motocycles = ['honda', 'yamaha', 'suzuki', 'ducati']
for motocycle in motocycles:
    print(motocycle)

輸出結果:


honda
yamaha
suzuki
ducati


返回目錄

避免縮進錯誤

python根據縮進來判斷代碼行與前一個代碼行的關係。通過縮進讓代碼更易讀;縮進使得代碼整潔而結構清晰。

忘記縮進

如果忘記縮進,python解釋器會提供一個traceback信息,提示縮進

忘記縮進額外的代碼行

忘記縮進會導致邏輯錯誤

不必要的縮進

如果你不小心縮進了不需要縮進的代碼,python解釋器會提示traceback信息

遺漏了冒號

for語句末尾的冒號告知python,下一行是循環的第一行

返回目錄

數值列表

使用函數range()

python函數range()能生成一系列的數字。

for value in range(1,5):
    print(value)

輸出結果:


1
2
3
4


使用range()函數創建數字列表

函數list()將range()的結果直接轉換爲列表

numbers = list(range(1,5))
print(numbers)

輸出結果:


[1, 2, 3, 4]


對數字列表進行統計計算

numbers = list(range(1,6))
print(numbers)
print(max(numbers))
print(min(numbers))
print(sum(numbers))

輸出結果:


[1, 2, 3, 4, 5]
5
1
15


列表解析

numbers = list(range(1,11))
print(numbers)

squares = [value**2 for value in range(1,11)]
print(squares)

輸出結果:


[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]


返回目錄

使用列表的一部分

切片

要創建切片,可指定第一個元素的索引和最後一個元素的索引+1

# 要創建切片,可指定第一個元素的索引和最後一個元素的索引+1
motocycles = ['honda', 'yamaha', 'suzuki', 'ducati']

# 包含0,1,2索引元素
print(motocycles[0:3])

# 包含1,2索引元素
print(motocycles[1:3])

# 包含0,1,2,3索引元素
print(motocycles[0:4])

# 包含1,2,3索引元素
print(motocycles[1:4])

# 包含0,1,2,3索引元素
print(motocycles[:4])

# 包含0,1,2索引元素
print(motocycles[:3])

# 索引從2開始元素
print(motocycles[2:])

# 包含倒數1元素
print(motocycles[-1:])

# 包含倒數2個元素
print(motocycles[-2:])

# 包含倒數3個元素
print(motocycles[-3:])

輸出結果:


[‘honda’, ‘yamaha’, ‘suzuki’]
[‘yamaha’, ‘suzuki’]
[‘honda’, ‘yamaha’, ‘suzuki’, ‘ducati’]
[‘yamaha’, ‘suzuki’, ‘ducati’]
[‘honda’, ‘yamaha’, ‘suzuki’, ‘ducati’]
[‘honda’, ‘yamaha’, ‘suzuki’]
[‘suzuki’, ‘ducati’]
[‘ducati’]
[‘suzuki’, ‘ducati’]
[‘yamaha’, ‘suzuki’, ‘ducati’]


遍歷切片

motocycles = ['honda', 'yamaha', 'suzuki', 'ducati']
for motocycle in motocycles[:4]:
    print(motocycle)

輸出結果:


honda
yamaha
suzuki
ducati


複製列表

motocycles = ['honda', 'yamaha', 'suzuki', 'ducati']
# 使用切片拷貝整個列表
motocycles_copy = motocycles[:]
# 使用copy方法拷貝列表
motocycles_copy2 = motocycles.copy()
print(motocycles_copy)
print(motocycles_copy2)

輸出結果:


[‘honda’, ‘yamaha’, ‘suzuki’, ‘ducati’]
[‘honda’, ‘yamaha’, ‘suzuki’, ‘ducati’]


返回目錄

元組

列表適合於存儲在程序運行期間可能變化的數據集。列表是可修改的。
python將不能修改的列表稱爲元組,使用圓括號括起來。可以使用索引訪問值

定義元組

dimension = (200,50)
print(dimension[0])
print(dimension[1])

輸出結果:


200
50


遍歷元組

dimensions = (200,50)
for dimension in dimensions:
    print(dimension)

輸出結果:


200
50


修改元組變量

dimensions = (200,50)
print("old dimensions:")
for dimension in dimensions:
    print(dimension)

dimensions = (100,100)
print("new dimensions:")
for dimension in dimensions:
    print(dimension)

輸出結果:


old dimensions:
200
50
new dimensions:
100
100


不能修改元組中得值,但是可以給元組變量重新賦值

返回目錄

歡迎大家一起交流討論

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章