Python自學筆記6-列表有哪些常用操作

列表是Python中最重要的數據類型,它使用的頻率非常非常的高,最大程度的發揮Python的靈活性。

和字符串一樣,列表的操作方法也有很多。如果說一頭鑽進去,可能會導致學習沒有重點。在這篇文章當中,首先九柄會跟大家介紹列表的基礎操作,然後我會跟大家去說一些列表這個數據類型常用的實戰操作。

爭取能夠對Python列表有一個大概的認識。

Python列表定義

首先我們來看一下列表的定義。列表通常用來存儲多個數據,每一個數據之間用逗號隔開,他們被稱爲元素,列表的左右兩邊帶有中括號。

a_list = [1, 2, 3, 4]

你可以把列表想象成是某種容器,你可以往這個容器裏面塞入任何的東西。並且列表當中的元素可以是任意的數據類型,你可以在一個列表當中同時存儲數字、字符串,甚至嵌套列表。

a_list = [1, "hello", ["new", "list"]]

當然,雖然列表可以存儲不同的數據類型,但是大多數情況下,裏面元素的數據類型是一樣的,你可以簡單理解他和其他的編程語言當中的數組差不多。

Python列表的基本操作

列表的基本操作分爲:增、刪、改、查。

  • ”查“ 主要是去獲取列表的某一個元素或者是多個元素,通過索引和切片可以獲取。
  • ”增“ 主要是對這個列表當中去添加一個新的元素。
  • “刪” 主要指我們對列表當中的某元素進行刪除。
  • “改”主要是這個對這個列表當中的元素去進行修改。

因爲列表本身有多個元素,我們可以獲取它的長度

a = [1, 2, 3]
print(len(a)) #3

Python列表索引

列表的索引的表示基本上和字符串的表示方法差不多,所以你可以直接引用字符串當中的操作,索引從0開始

man = [1, 2, 3]
print(man[1]) #2
print(man[0]) #1

索引可以是負數,表示倒數第幾個,也就是從列表的右邊數到左邊。索引爲 -1 表示獲取倒數第一個元素,索引爲 -2 表示獲取倒數第二個元素。爲什麼正序數的索引從 0 開始,倒序就不能從 0 開始呢?因爲索引爲 0 不能同時表示兩個元素,會造成指令的衝突。

print(man[-1]) #3

超出索引範圍報 IndexError 錯誤

print(man[8])

Python列表切片

列表的切片呢也基本上和字符串的切片差不多。所以我們可以直接用字符串切片的方法。切片的表示方法是:var[start: end]。 start 表示開始位置的索引號,end 表示結束位置的索引號, 但是不包含 end。

girl = [1,2,3,4,5,6]
part_of_girl = girl[0:1]
print(part_of_girl)  # [1]

切片的索引號也可以是負數,但是在使用的時候要確保 end 是在 start 的右邊,end - start > 0 。

print(girl[0: -2])  
print(girl[-2: -4])  

切片的索引號超出範圍是不會報錯的,取到盡頭爲止。

print(girl[0:100000000000])

切片的 start 和 end 都可以省略。

girl[1:]
girl[:-1]
girl[:]

切片可以加第三個參數, girl[start:end:step], 其實使用切片時,默認的步長是爲 1。

girl[0:3:2]

Python列表添加元素

列表當中添加一個新的元素,我們主要使用兩種方法。

第一種方法是使用 append 方法在列表的最後面添加一個元素。

a = [1, 2]
a.append(3) 
# [1,2,3]

第二種方法是通過 insert 方法在某個索引的位置添加一個新的元素,對比一下和上一種方法的區別。

a = [1, 2]
a.insert(0, 3)
# [3,1,2]

Python 列表去除重複元素

在列表當中刪除元素的方式也有兩種。

第1種是通過remove方法移除指定的值。

a = ["a", "b"]
a.remove("a")
# ['b']

第2種是通過 Pop方法,刪除指定索引位置的值。

a = ["a", "b"]
a.pop(1)
# ['a']

如果想直接清空這個列表,那麼就可以使用clear方法。

a.clear()

比較常見的是,我們經常要對列表當中的元素去重,可以通過先轉化成集合類型,然後再轉回列表類型。

a = [1, 2, 1, 4, 2]
print(list(set(a)))

Python列表求和

有的時候呢,我們會在一個列表裏面去存儲很多的數據,並且要對整個列表當中所有的數據去求和,則可以使用 sum 函數

a = [1, 2, 1, 4, 2]
print(sum(a))

Python 列表排序

列表排序也是使用非常非常多的操作,對整個列表排序之後,可能會簡化之後的操作。 要實現排序,不一定非得實現排序算法,在Python當中,可以直接調用列表下面的sort 方法實現排序。

a = [1, 5, 3, 2]
a.sort()

如果想從大到小排序呢,我們可以再加上一個reverse參數。

a.sort(reverse=True)

Python列表推導式

列表推導式是我建議每一個Python初學者都掌握的一個進階技巧。它能夠極大的簡化一些列表的複雜操作,讓我代碼變得更加的優雅。列表推導式主要應用的場合,是對列表當中的每一個元素去進行同樣的操作,比如說我們想對一個列表當中的每一個元素都轉化成字符串,那麼就非常適合使用列表推導式來操作。

a = [1, 5, 3, 2]
b = [str(i) for i in a]
# b = ['1', '5', '3', '2']

總結

列表經常出現在初級Python程序員的面試題當中。如果你剛開始學Python,想找一份Python相關的工作,那麼在面試過程當中一般都會問到一些關於列表的面試題。

其中一個原因是列表確實用的頻率比較高,第2個原因是列表一種可變的數據類型,當對它去進行操作時候,比較容易出現bug,在面試當中,如果說對列表進行考覈的話,能夠稍微看出一個人的代碼功底。

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