Python學習筆記(3):列表

寫在前面

這節內容是Python基礎知識中的數據結構,沒看過前面內容的童鞋可以複習一下:

從Excel的數據類型說Python

數據結構會分4個小節的內容來寫,首先來認識第一種結構——列表

列表(list),是用方括號[]括起來的一種數據結構,元素和元素之間用逗號分隔,列表中的元素是可以進行增刪查改等一系列操作的,列表通常這樣表示:

列表名 = [元素1,元素2,元素3]

我們從建、增、刪、查、改5個維度來學習列表。

1、建

列表中的數據沒有類型的限制,可以是數值型也可以是字符型,還可以混搭。新建一個列表i_list,列表中的數據是數值型。

In [1]:#新建一個列表
       i_list = [2,5,8]
       i_list
Out[1]:[2,5,8]

可以用type函數查看一個列表的數據類型,可以看到i_list列表的類型爲list

In [2]:type(i_list)
Out[2]:list

新建一個字符型的列表s_list,裏面存儲字符

In [3]:s_list = ["a","b","c"]
       s_list
Out[3]:["a","b","c"]

新建一個混搭型的列表,h_list,既有數值又有字符

In [4]:h_list = [1,"a",2,"b"]
       h_list
Out[4]:[1,"a",2,"b"]

2、增

增的意思是在列表中增加元素,或在列表中增加列表。

2.1 列表中增加元素

append方法用來在末尾插入新元素,如對i_list列表後邊追加一個值10.

In [5]:# 末尾追加
       i_list.append(10)
       i_list
Out[5]:[2,5,8,10]

insert方法則可以在指定位置插入新元素,如在s_list列表中第2個位置插入“s”字符,需要注意的是,insert(位置,值),意思是在哪一個位置插入什麼值,第一個位置是0,第二個位置是1,因此這裏是(1,"s")

In [6]:# 指定插入
       s_list.insert(1,"s")
       s_list
Out[6]:["a","s","b","c"]

2.2 列表中增加列表

俗稱列表合併,可以用”+”號操作符,如將i_list與s_list兩個列表合併在一起,就是純粹地連接在了一起。

In [7]:i_s = i_list + s_list
       i_s
Out[7]:[2,5,8,10,"a","s","b","c"]

也可以使用extend方法,a.extend(b),意思是把b列表合併到a列表中,效果是一樣的,只不過現在i_list列表就變了,不是單純的數值型列表了。

In [8]:i_list.extend(s_list)
       i_list
Out[8]:[2,5,8,10,"a","s","b","c"]

3、刪

列表中元素的刪除,可以根據元素值刪除,也可按索引刪除。
remove方法是根據元素刪除,指定要刪除的元素的值,一次只能刪除一個值,如現在刪除s_list列表中的“s”字符。

In [9]:s_list.remove("s")
       s_list
Out[9]:["a","b","c","d"]

pop方法是按照索引刪除,即指定要刪除字符所在的位置,如刪除i_list列表中10這個值,已知10是該列表中的最後一位

In [10]:i_list.pop(-1)
        i_list
Out[10]:[2,5,8]

以及del函數,永久刪除,效果一樣,不同的是一個是python中的函數,一個是面向對象的方法。

In [11]:del i_list[-1]
        i_list
Out[11]:[2,5,8]

4、查

查的意思是查找某個元素是否在列表中,以及通過索引訪問該元素。

4.1 查找某個值是否在列表中

可以使用in操作符來查找一個值是否在列表中,返回的結果是邏輯值True/False,這個在之前數據類型中寫到過的字符串查找用in的方法是一樣的,如查找5是否在i_list列表中。

In [12]:5 in i_list
Out[12]:True

4.2 查找列表中指定位置的值

查找列表中指定位置的值,也就是通過索引來訪問該元素。列表是有序的,每一個元素都有其特定的索引,可以使用索引和切片來查找列表中某位置的值。如獲取s_list列表中第3個位置的值,得到字符“c”,再來複習一下索引,從0開始遞增,那麼a的位置是0,b是1,c就是2.

In [13]:s_list
Out[13]:["a","b","c","d"]
In [14]:s_list[2] #獲取第3位的值
Out[14]:'c'

取第3位及以後位置的值,就要切片了,:是指所有的值,2:是指從第3位開始,包括第三位以後所有的值。

In [15]:s_list[2:] #獲取第3位及以後的值
Out[15]:['c','d']

5、改

對列表中元素的值進行修改,直接查找到位置後賦值即可,就是這麼簡單粗暴。如對s_list列表中的第一個值,改成大寫的A。

In [16]:s_list[0] = "A"
        s_list
Out[16]:["A","b","c","d"]

可選地,對列表的操作還有排序、複製、計數等,可以看一下。

6、排序

sort方法,默認升序,降序需添加reverse = True參數。

In [17]:#升序
        s_list.sort()
        s_list
Out[17]:["A","b","c","d"]
In [18]:#降序
        s_list.sort(reverse = True)
        s_list  
Out[18]:["d","c","b","A"]

7、複製

copy方法複製列表,如將s_list列表複製一份,則得到它的副本,可以在它的副本基礎上做修改。

In [19]:s_list.copy()
Out[19]:["d","c","b","A"]

8、求列表長度

len函數求列表長度,如求s_list列表的長度,得到4,裏面有4個元素。

In [20]:len(s_list)
Out[20]:4

9、計數

計數用來統計列表中元素出現的次數,用count方法,如統計t_list列表中元素c出現的次數,結果爲1,表示出現了1次。

In [21]:s_lisr.count("c")
Out[21]:1

總結

新建列表:

  • [1,2,3,4]

  • ["a","b","c","d"]

增加元素:append(末尾) / insert(指定位置)

增加列表:extend

刪除元素:remove(按值) / pop(按位置)

查找元素:

  • in

  • 索引+切片

修改元素:查找後賦值

排序:sort

複製:copy

長度:len

計數:count


@文章屬原創,轉載請聯繫作者

@作者:可樂,數據分析從業者

@微信公衆號:可樂的數據分析之路,關注回覆“資料”,領取數據分析學習資料大禮包

@ 可樂的數據分析交流羣也已建立,加作者微信(data_cola),備註進羣,拉你入羣交流探討

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