先分別來介紹兩種資料結構,再來比較兩者的相同點和不同點
1. 列表和元組可以儲存任意數量的任意型別的python物件
2. 可以使用下標來訪問元素
3. 可以使用[:]切片規則來得到想要的子集
符號
列表使用 [ ] 來巢狀它所包含的物件。
#可以是任意型別的物件
>>>obj = [123,456,'王五']
支援下標的隨機訪問
>>>a = [1,2,3,4,5,6,7,8,9]
>>>a[0] = 1
>>># -1代表最後乙個元素,這個用起來很方便
>>>a[-1] = 9
切片操作
list[start_index:end_index:step_index]
start_index:起始位置
end_index:結束位置(python裡都是前閉後開區間,所以不包括結束位置)
step_indx:每次的步長(可以不提供,但是不能為0,否則報valueerror)
下面是例項:
#代表列表中的每個數
>>>a[:]
>>>a = [0,1,2,3,4,5,6,7,8,9]
>>>#從下標為1的元素開始,一直到最後乙個元素
>>>>a[1:]
>>>[1,2,3,4,5,6,7,8,9]
>>>#從下標為1的元素開始,到下標為8的元素(不包括下標為8的元素)
>>>a[4:8]
>>>[1,2,3,4,5,6,7]
>>>#從下標為1開始,到下標為8,兩個元素為乙個步長
>>>a[1:8:2]
>>>[1,3,5,7]
列表的物件方法(列表內建的一些操作)
將乙個元素新增到列表的結尾,相當於a[len(a):] = [x]
list.extend(l)
將乙個給定列表中的所有元素都新增到另乙個列表中,即a[len(a):] = l
list.insert(i,x)
在指定位置插入乙個元素,第乙個引數為索引
插入第乙個:a.insert(0,x)
list.remove(x)
刪除列表中值為x的第乙個元素,如果該元素不存在,則返回錯誤
list.pop(i)
從指定位置刪除元素,並將其返回,如果沒有指定索引,則a.pop()返回最後乙個元素
list.clear()
從列表中刪除所有元素,即del a[:]
list index(x)
返回列表中第乙個值為x的元素的索引,如果沒有匹配的則返回乙個錯誤
list.count(x)
返回x在列表中出現的次數
list.sort()
對元素進行排序
list.reverse()
元素逆置
list.copy()
返回列表的乙個淺拷貝,即a[:]
列表可以當堆疊和佇列使用,呼叫相應的操作即可
要實現佇列,可以呼叫clooections.deque:為在首尾兩端快速插入和刪除而設計
列表推導式
生成乙個列表,裡面包含1-9的平方
普通做法
# 注意這裡的x變數在迴圈完畢後依然存在
s =
for x in range(10)
高階做法
#無***的計算值列表生成式的表示式構成:#這裡使用到了高階函式map(對映)
s = list(map(lambda x : x ** 2,range(5))
或者 s = [x ** 2
for x in
range(5)]
>>>[0,1,4,9,16]
乙個包含表示式的括號組成,表示式後跟隨乙個for子句,之後可以跟零個或多個for或if子句,結果是乙個列表
如上面的生成式,加上if判斷
s = list[x ** 2
for x in range(5) if x > 2]
>>>[9,16]
del語句
按給定的索引值而不是值來刪除子項。
不同於pop函式:
1、pop函式具有返回值
2、del可以從列表中刪除切片或清空整個列表
del a[0] #刪除索引為0的元素
del a[2:5] #刪除下標2到5的元素(前閉後開)
del a[:] #刪除列表中所有元素
#還可以刪除整個變數
del a
建立乙個元組
#輸入時()可有可無
>>>t = 123,'tuple'
#輸出時會自動加上(),以正確表達巢狀結構
>>>(123,'tuple')
在建立包含零個或乙個元素的元組時需要注意
元組的封裝與分拆
封裝:t = 123,456,'tuple'
將三個元素封裝成乙個元組
拆分:x,y,z = t
分別將三個元素賦值給三個變數
列表與元組的對比
相同點:
可以儲存任意數量,任意型別的python物件
可以使用下標來訪問元素
可以使用[:]切片規則來得到想要的子集
不同點:
元組支援的物件方法只有tuple.count(x)和tuple.index(x)
元組是不可變的,而列表是可變的
Python 資料結構之列表 元組
今天來分享一下關於列表和元組的學習心得。本篇是資料型別系列的倒數第二篇,最後一篇我們單獨留給元組,同時會在該篇中解釋原因,敬請期待。關於列表,這一型別可以說是與之前所分享的 集合 型別相似。但是,僅僅是相似而已,還是存在差距的,要不怎麼會是一種新的資料型別呢 列表用 表示,內部用逗號 分隔。內部元素...
2 資料結構 列表和元組
python中主要是序列和對映兩類,除此之外,集合 set 也是一種容器型別。python中有六種內建的序列 列表和元組,以及字串 unicode字串 buffer物件和xrange物件。這裡主要討論列表和元組。列表可以修改,元組則不能,幾乎所有的情況列表都可以替代元組。通用的序列操作 1.索引,通...
Python的資料結構(列表,集合,元組)
python也算是現學現用,針對資料結構,我覺得必須掌握的就這三種 列表,集合,元組 列表的申明和訪問 usr bin python3 list list1 google runoob 1997,2000 list2 1,2,3,4,5,6,7 print list1 0 list1 0 print...