資料結構 列表與元組

2021-08-20 20:39:23 字數 2921 閱讀 3740

先分別來介紹兩種資料結構,再來比較兩者的相同點和不同點

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...