Python筆記之列表,元祖和集合

2021-07-27 19:58:46 字數 3688 閱讀 7843

先來看看我們的列表。

什麼是列表?

列表是用括起來,用,分割的一系列資料,如

[1, true, 'abc', [2, false, 'def']]

可以看到,列表並不要求其內放置相同型別的資料,但是我們在實際使用中,一般都會放置相同型別的資料,以便於我們進行處理。如

[1, 2, 3]或者['abc', 'def']

如何對列表取值或修改?

(1) 獲取列表長度

使用len()全域性方法,len()方法還可以用來測量字串,元祖以及字典的長度

>>> len([1,2,3])3

(2)列表下標操作

我們可以使用下標對列表進行操作,列表第乙個元素的下標為0,第二個為1,以此類推,也可以使用負數,-1代表倒數第乙個元素,-2代表倒是第二個元素,以此類推。

我們下面的例子假設都使用列表[1,2,3]進行,賦值給變數a,利用下標讀取值:

>>> a[1]2

>>> a[-3]1

修改對應下標處的值(後續修改操作後記得執行a=[1,2,3],將a變數還原)

>>> a[1]=4

>>> a

[1, 4, 3]

刪除對應下標處的元素,使用del語句

>>> del a[1]

>>> a

[1, 3]

通過下標擷取子列表,使用start_index:end_index作為下標作用於列表即可,注意,取得的子列表不包括end_index對應的元素,也就是子列表區間為[start_index, end_index),另外,我們可以省略start_index,表示從0開始,省略end_index,表示到達列表末尾

>>> a[1:3]

[2, 3]

>>> a[:2]

[1, 2]

>>> a[1:]

[2, 3]

>>> a[:]

[1, 2, 3]

>>> a[-2:]

[2, 3]

執行擷取子列表操作之後,看看a的值

>>> a

[1, 2, 3]

a並沒有被改變,而是生成了新的子列表,千萬注意。

(3)列表的連線

>>> a=[1,2,3]

>>> b=[4,5,6]

>>> a+b

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

(4) 列表的複製

>>> a*3

[1, 2, 3, 1, 2, 3, 1, 2, 3]

(5)列表的常用方法

看到這裡,熟悉物件導向的人應該能夠想到,如果列表有方法,那麼列表實際上是一種python的類,的確如此

>>> a.__class__

我們先不去關注python物件導向程式設計的部分,畢竟不物件導向的python已經能夠解決我們的很多問題了。我們只是去看看list,也就是列表類,有哪些常用的操作。由於這些list類的方法,會直接改變列表的內容。在idle輸入help(list)可以輸出list類的手冊,可以更深入的了解列表的方法。先執行

>>> a=[1,2,3]

(a) 查詢對應值的下標值

>>> a.index(2)1

如果值不存在,python會丟擲錯誤valueerror

>>> a.index(4)

traceback (most recent call last):

file "", line 1, in

a.index(4)

valueerror: 4 is not in list

(b)列表尾新增值

(c)列表插入值

>>> a.insert(1, 4)

>>> a

[1, 4, 2, 3]

insert方法的第乙個引數是要插入的下標位置,第二個引數是要插入的值。

(d)刪除值

>>> a

[1, 4, 2, 3]

>>> a.remove(4)

>>> a

[1, 2, 3]

這裡注意和前面del區分,del再知道下標時很好用,刪除對應下標的值,remove則處理知道值但不知道下標的情況。

如果刪除不存在的值,會報錯

>>> a.remove(4)

traceback (most recent call last):

file "", line 1, in

a.remove(4)

valueerror: list.remove(x): x not in list

如果列表有重複值,刪除會怎樣?

>>> a=[1,2,3,4,3]

>>> a.remove(3)

>>> a

[1, 2, 4, 3]

刪除了第乙個匹配的元素

(e)排序

>>> a=[2,3,1,7]

>>> a.sort()

>>> a

[1, 2, 3, 7]

(6)列表的使用

(a) 用於迴圈,可以使用in遍歷a中的所有元素

>>> a=[1,2,3]

>>> for b in a:

print(b, end=' ')

輸出1 2 3

(b) 多重賦值

如果我們想把列表中的值分別賦值給多個變數,我們沒必要這樣

>>> a

[1, 2, 3]

>>> b=a[0]

>>> c=a[1]

>>> d=a[2]

只需要一條語句即可

>>> b,c,d=a

(c) 判斷某個值是否在列表中,用in和not in進行操作

>>> 1 in a

true

>>> 4 in a

false

>>> 1 not in a

false

>>> 4 not in a

true

以上就是列表的內容,了解了列表,元祖就相當簡單了,元祖就是唯讀的列表,不能對其進行修改,只能獲取值,只要記住這一點就足夠了,元祖用()擴住,逗號分隔,如(1,2,3),但是如果元祖只有乙個值,一定寫成(1,),後面加乙個逗號,否則,python會認為1是用括號擴住的常數1。列表和元祖之間可以相互轉換

>>> a

[1, 2, 3]

>>> tuple(a)

(1, 2, 3)

>>> list(a)

[1, 2, 3]

最後再來了解一下set,也就是集合,集合和列表類似,可以修改,也可以新增元素,差別在於,列表是乙個有序的雙向佇列,集合無序;列表可以儲存重複的元素,而集合不行,如果有重複元素,集合只會保留乙個。集合是用{}括起來,用逗號分隔的單個值,這裡記住是單個值,以方便和後面的字典區分。如

元祖,列表和集合三者可以相互轉換,因為他們都是一維的資料結構

>>> a

[1, 2, 3]

>>> tuple(a)

(1, 2, 3)

>>> set(a)

>>> list(a)

[1, 2, 3]

集合類的可操作方法不多,可以help(set)檢視,另外,由於集合無序,所以不能使用下標進行索引,也沒有sort()方法;集合不能有重複元素,所以集合不能進行複製,總之,記住集合無序且不能有重複,所以列表中與順序和重複有關的操作,集合都是不合法的。

python之列表和元祖

python之列表和元祖 資料結構是通過某種方式 例如對元素進行編號 組織在一起的資料元素的集合,這些元素不僅是數字元素還可以是其他的資料結構。在python中最基本的資料結構是序列 sequence 序列中的每個元素都會分配乙個序號就像是每位同學都有學號一樣。這個序號代表著這個元素的位置,從0開始...

python筆記 列表 元祖

python中最基本的資料結構。序列中的每個元素都分配乙個數字 它的位置,或索引,第乙個索引是0,第二個索引是1,依此類推。python有6個序列的內建型別,但最常見的是列表和元組。序列都可以進行的操作包括索引,切片,加,乘,檢查成員。此外,python已經內建確定序列的長度以及確定最大和最小的元素...

Python 列表和元祖

在python中,最基本的資料結構是序列,序列包含 其他的內建序列型別有 一 通用序列操作 所有的序列型別都可以進行某些特定的操作。這些操作包括 索引 分片 加 乘及檢查某個元素是否屬於序列的成員。1.1 索引 name hongxue name 0 h name 0 3 hon 這就是索引,字串是...