說說 Python 的列表

deniro發表於2019-02-07

說說 Python 的列表

列表是由一系列按特定順序排列的元素組成的物件。因為列表通常包含多個元素, 所以建議給列表指定一個表示複數的名稱。

我們用方括號( [] ) 來表示列表, 並用逗號來分隔其中的元素。

types=['娛樂','體育','科技']
print(types)
複製程式碼

執行結果:

說說 Python 的列表

可以看到,列印列表的同時,也會將方括號列印出來。

1 獲取元素

要獲取列表中的某個元素, 在方括號內指定元素的索引即可:

print('第三個型別:'+types[2])
複製程式碼

執行結果:

說說 Python 的列表

當我們請求獲取列表元素時, 只會返回該元素本身。

2 索引從 0 開始

跟大多數程式語言相同,索引從 0 開始計數。因此,需要獲取列表的任何元素, 都可將其位置減1, 作為索引。

將索引指定為 -1,還可以獲取最後一個列表元素,這樣就可以在不知道列表長度的情況下,獲取最後一個元素:

print('最後一個:'+types[-1])
複製程式碼

執行結果:

說說 Python 的列表

這種語法也適用於其他負數索引。索引 -2 獲取倒數第二個列表元素, 索引 -3 獲取倒數第三個列表元素, 以此類推。

print('倒數第二個:'+types[-2])
複製程式碼

執行結果:

說說 Python 的列表

3 新增元素

3.1 列表末尾

append() 方法可以將元素附加到列表末尾:

types.append('財經')
print(types)
複製程式碼

執行結果:

說說 Python 的列表

append() 方法很適合動態地建立列表。我們可以先建立一個空列表, 然後再使用一系列的append() 方法為列表新增元素。

colors=[]
colors.append('綠色')
colors.append('藍色')
colors.append('紫色')
print(colors)
複製程式碼

執行結果:

說說 Python 的列表

3.2 指定位置

insert() 可以在列表的任意位置新增新元素。這個方法的入參是新元素的索引和值。

colors.insert(0,'紅色')
print(colors)
複製程式碼

執行結果:

說說 Python 的列表

在這個示例中, 值 ' 紅色' 被插入到了列表頭,列表中既有的元素都右移了一個位置。

4 修改元素

修改列表元素的語法與獲取列表元素的語法相似。我們可指定列表名、要修改的元素索引以及新值:

colors[0]='白色'
print(colors)
複製程式碼

執行結果:

說說 Python 的列表

5 刪除元素

5.1 del()

如果知道要刪除的元素在列表中的位置,那麼可以使用 del():

del colors[0]
print(colors)
複製程式碼

執行結果:

說說 Python 的列表

5.2 pop()

把列表想象成一個棧。pop() 方法會彈出棧頂元素(即列表末尾最後一個元素),並返回這個元素。

print('執行前:'+str(colors))
poped_color=colors.pop()
print('棧頂元素:'+poped_color)
print('執行後:'+str(colors))
複製程式碼

執行結果:

說說 Python 的列表

只要指定好要刪除的元素索引,pop() 也可以用來刪除列表中任何位置的元素:

print('執行前:'+str(colors))
poped_color=colors.pop(0)
print('刪除的元素:'+poped_color)
print('執行後:'+str(colors))
複製程式碼

執行結果:

說說 Python 的列表

5.3 比較 del() 與 pop()

  • del() :從列表中刪除一個元素, 且不再使用它。
  • pop():從列表中刪除一個元素, 且還需要使用它。

5.4 根據值刪除 remove()

print('執行前:'+str(colors))
colors.remove('藍色')
print('執行後:'+str(colors))
複製程式碼

執行結果:

說說 Python 的列表

**注意:**remove() 只會刪除第一個指定的值。 如果需要刪除多個指定的值, 那麼就需要使用迴圈咯O(∩_∩)O~

6 排序

6.1 永久性排序 sort()

types=['sport','travel','business']
types.sort()
print("按字母順序正序排序後:"+str(types));
types.sort(reverse=True)
print("按字母順序逆序排序後:"+str(types));
複製程式碼

執行結果:

說說 Python 的列表

sort() 會永久性(再也恢復不回去咯)地改變列表元素的排列順序(按字母順序)。如果需要對中文的拼音進行排序,需要引入第三方庫。

為 sort() 方法傳遞引數 reverse=True,就可以按照字母順序逆序的規則來排列元素。

6.2 臨時排序 sorted()

函式sorted() 可以保留列表元素原有的排列順序, 同時返回排序後的列表。

types=['sport','travel','business']
print("排序後:"+str(sorted(types)));
print("原列表:"+str(types));
print("按字母順序逆序排序後:"+str(sorted(types,reverse=True)));

複製程式碼

執行結果:

說說 Python 的列表

**注意:**呼叫函式 sorted() 後, 原有列表的元素排列順序沒有被改變,所以叫臨時排序。

sorted() 函式也支援引數 reverse=True,按照字母順序逆序的規則來排列元素。

6.3 倒序 reverse()

reverse() 會反轉列表原有元素的排列順序。

types=['娛樂','體育','科技']
print('倒序前:'+str(types))
types.reverse()
print('倒序後:'+str(types))
複製程式碼

執行結果:

說說 Python 的列表

7 列表長度 len()

types=['娛樂','體育','科技']
print(len(types))
複製程式碼

執行結果:

說說 Python 的列表

8 索引錯誤

發生索引錯誤時, 建議將列表或長度列印出來,通過檢視這些內容, 可以幫助我們找出錯誤引發的原因哦O(∩_∩)O~

相關文章