先來看看我們的列表。
什麼是列表?
列表是用括起來,用,分割的一系列資料,如
[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 這就是索引,字串是...