第5課 列表和元組(20191121)

一、列表和元組

1.序列:是一種包含多項數(shù)據(jù)(元素)的數(shù)據(jù)結(jié)構(gòu),通過索引來訪問序列中的每個元素。

1)常用的三種數(shù)據(jù)結(jié)構(gòu):列表(list)、元組(tuple)和字典(dict)。因為在程序中不僅需要用變量來保存單個數(shù)據(jù),還需要使用多種數(shù)據(jù)結(jié)構(gòu)來保存大量的數(shù)據(jù),而列表、元組和字典就是用來保存大量數(shù)據(jù)的。

2)字符串也是一種序列。

2.列表和元組的區(qū)別:

1)元組是不可變的,元組一旦建立構(gòu)建出來,程序就不能修改元組中所包含的成員。在程序中如果只是固定的保存多個數(shù)據(jù)項,不需要修改它們,此時就應(yīng)該使用元組。比如Python要求字典的Key必須是不可變的,此時程序只能使用元組來保存Key。

2)列表是可變的,程序可以修改列表所包含的元素。

3)字符串也是不可變的,程序不可以修改字符串中的字符序列,替換字符時只能重新組成一個新的字符串,不能修改原有字符串字符。

3.創(chuàng)建列表和元組

1)創(chuàng)建列表使用方括號[], 元素之間用英文逗號( ,)隔開。

>>>my_list = [‘Jeff’,8, ‘boy’]

>>>print(my_list)

2)創(chuàng)建元組使用圓括號(),元素之間用英文逗號( ,)隔開。

>>>my_tuple = (‘Jeff’,8, ‘boy’)

>>>print(my_tuple)

4.通過索引使用元素

1)列表和元組都可以通過索引來訪問元素,它們的索引都是從0開始,第一個元素的索引為0,第二個元素的索引為1,以此類推。它們也都支持負(fù)數(shù)索引,倒數(shù)第一個元素的索引為-1,倒數(shù)第二個的索引為-2,以些類推。(同前面所講字符串的索引)例如:

#訪問列表的元素

>>>my_list = [‘Jeff’,8, ‘boy’]

>>>print(my_list)

>>>print(my_list[0]) #Jeff

>>>print(my_list[1]) #8

>>>print(my_list[2]) #boy

#訪問元組的元素

>>>my_tuple = (‘Jeff’,8, ‘boy’)

>>>print(my_tuple)

>>>print(my_tuple[0]) #Jeff

>>>print(my_tuple[1]) #8

>>>print(my_tuple[2]) #boy2)

列表的元素相當(dāng)于一個變量,程序既可以使用它的值,也可以對它重新賦值。元組的元素相當(dāng)于一個常量,程序只可以引用它的值,不能對它重新賦值。

5.通過索引獲取子序列(中間一段):列表和元組同樣可以使用索引,來獲取中間一段元素,這種方法叫做slice(切片)。(同前面所講字符串一樣)例如:

格式為:[start : end: step]

#訪問第2個到第4個元素(不包含4)

>>>my_tuple =(‘a(chǎn)’,’b’,’c’,’d’,’e’’f’,’g’)

>>>print(my_tuple[2:4] # ('c', 'd')

#訪問第2個到倒數(shù)第2個元素(不包含倒數(shù)第2)

>>>print(my_tuple[2:-2] #('c', 'd', 'e')

# 訪問倒數(shù)第3個到倒數(shù)第1個(不包含倒數(shù)第1)

>>>print(my_tuple[-3:-1] # ('e', 'f') , 注意不是[-1:-3]

二、列表和元組支持的運算

1.加法: 列表和元組都支持加法運算,結(jié)果就是兩個列表和元組的元素總和。例如:

#兩個元組相加

>>> tuple1 =('a','b','c',1,2,3)

>>> tuple2 =('c','d','e',4,5,6)

>>> sum_tuple = tuple1+tuple2

>>> print(sum_tuple)? #('a', 'b', 'c', 1, 2, 3, 'c', 'd', 'e', 4, 5, 6)

>>>print(tuple1+('c','d','e',4,5,6))? #('a', 'b', 'c', 1, 2, 3, 'c', 'd', 'e', 4, 5, 6)

#兩個列表相加

>>> list1 =['a','b','c',1,2,3]

>>> list2 =['c','d','e',4,5,6]

>>> sum_list = list1+list2

>>> print(sum_list) #['a', 'b', 'c', 1, 2, 3, 'c', 'd', 'e', 4, 5, 6]

>>>print(list1+['c','d','e',4,5,6])? #['a', 'b', 'c', 1, 2, 3, 'c', 'd', 'e', 4, 5, 6]

2.乘法:列表和元組都可以和整數(shù)進(jìn)行乘法運算,結(jié)果就是把它們所包含的元素重復(fù)N次。例如:

>>>a_tuple = (‘a(chǎn)’,b’,’c’)

>>>mul_tuple =a_tuple*3

>>>print(mul_tuple) #(‘a(chǎn)’,b’,’c’, ‘a(chǎn)’,b’,’c’, ‘a(chǎn)’,b’,’c’)

3.In運算:用于判斷列表和元組中是否。例如:

>>>a_tuple = (‘a(chǎn)’,b’,’c’)

>>>print(‘a(chǎn)’ in a_tuple) # Ture

>>>print(‘x’ in a_tuple) #False

4.長度:Python提供了內(nèi)置函數(shù)len()來獲取元組或列表的長度。例如:

>>>a_tuple = (‘a(chǎn)’,b’,’c’)

>>>print(len(a_tuple)) # 3

5.最大值和最小值:Python提供了內(nèi)置函數(shù)max()和min()來獲取元組或列表的最大值和最小值。例如:

>>>a_tuple = (‘a(chǎn)’,b’,’c’)

>>>b_tuple = (‘a(chǎn)bc’,’acd’,’bdf’)

#計算最大值

>>>print(max(a_tuple)) # c

>>>print(max(b_tuple)) # bdf

#計算最小值

>>>print(min(a_tuple)) # a

>>>print(min(a_tuple)) #abc

備注:26個小寫ASCII碼值為97-122, 單個元素中有多個字母或數(shù)值時,先比較第一個,若相同再比較第二個)

6.序列封包(Sequence Packing): 程序把多個值賦值給變量時,Python會自動將多個值封裝成元組。這種功能被稱為序列封包。例如:

#將1、2、3封裝成元組后賦值給變量Var

>>>Var =1,2,3

>>>print(Var) #(1,2,3)

>>>print(type(var))#

7. 序列解包 (Sequence Unpacking):程序允許將序列(元組或列表等)直接賦值給多個變量,序列的每個元素會被依次賦值給多個變量。這種功能被稱為序列解包。

#將tuple1中的元素1、2、3、4、5依次賦值給變量 a、b、c、d、e

>>>tuple1=(1,2,3,4,5)

>>>a,b,c,d,e=tuple1

>>>print(a,b,c,d,e) #1 2 3 4 5

三、 列表的常用方法

1. list()函數(shù):可以將元組、區(qū)間(range)等對象轉(zhuǎn)換成列表。例如:

#將元組轉(zhuǎn)換成列表

>>>a_tuple =(‘a(chǎn)’,’b’,’c’)

>>>a_list =list(a_tuple)

>>>print(a_list) #['a', 'b', 'c']

#將區(qū)間轉(zhuǎn)換成列表

>>>a_range =range(1,5)

>>>b_list =list(a_range)

>>>print(b_list)#[1,2,3,4]

2. tuple()函數(shù):可以將元組、區(qū)間(range)等對象轉(zhuǎn)換成元組。例如:

#將列表轉(zhuǎn)換成元組

>>>a_list =[‘a(chǎn)’,’b’,’c’]

>>>a_tuple =tuple(a_list)

>>>print(a_tuple) #('a', 'b', 'c')

3. 增加列表元素:可調(diào)用列表的append()方法,它會把傳入的參數(shù)追加到列表的最后面。append()方法還可以向列表中追加元組或列表,但該方法只是將追加的元組或列表當(dāng)成單個元素。

1) 向列表中追加元素,例如:

>>>a_list =[‘a(chǎn)’,’b’,’c’]

>>>a_list.append(‘d’)

>>>print(a_list) ##['a', 'b', 'c', ’d’]

2) 向列表中追加元組,例如:

>>>a_tuple =(1,2,3)

>>>a_list =[‘a(chǎn)’,’b’,’c’]

>>>a_list.append(a_tuple)

>>>print(a_list) ##['a', 'b', 'c', (1,2,3)]

3) 向列表中追加列表,例如:

>>>a_list =[‘a(chǎn)’,’b’,’c’]

>>>b_lsit =[‘d’,’f’]

>>>a_list.append(b_list)

>>>print(a_list) ##['a', 'b', 'c',[ ’d’,’f’]]

4) extend()方法:如果不想要追加的列表當(dāng)成一個整體元素,則可以使用extend()方法。例如: >>>a_list =[‘a(chǎn)’,’b’,’c’] >>>b_lsit =[‘d’,’f’] >>>a_list.extend(b_list) >>>print(a_list) #['a', 'b', 'c',’ d’, ‘f’]

4. 刪除列表元素:Python 中的del語句專門用來執(zhí)行刪除操作,它既可以刪除列表中的一個元素,又可以刪除一段子序列,還可以刪除變量。例如:

>>>a_list =[‘a(chǎn)’,’b’,’c’]

>>>b_list =[‘a(chǎn)’,’b’,’c’,’d’,’e’,’f’]

>>>del a_list[2]

>>>del b_list[1:3]

>>>print(a_list) #['a', 'b']

>>>print(b_list) #['a', 'd', 'e', 'f']

5. 修改列表元素:程序?qū)α斜碓刭x值,即修改了列表元素。例如:

>>>b_list =[‘a(chǎn)’,’b’,’c’,’d’,’e’,’f’]

>>>b_list[2]=’x’

>>>print(b_list) #['a', 'b', 'x', 'd', 'e', 'f']

6. 列表的其它常用方法:除了增加、刪除、修改以外,列表中還包含一些其它的常作方法。

1) 輸入dir(list), 可以查看列表中包含的所有方法。例如:

>>>dir(list) #列出list的所有方法

2) 其它方法的功能介紹: ?

count():用來統(tǒng)計列表中某個元素出現(xiàn)的次數(shù)。 ?

index():用來判斷某個元素在列表中出現(xiàn)的位置。 ?

pop():用來將列表當(dāng)作棧(stack)來使用,實現(xiàn)元素出棧功能。 ?

reverse():用于將列表中元素反響存放。 ?

sort():用于對列表元素排序。

例如(count):

#計算列表中12出現(xiàn)的次數(shù)

>>>a_list =[1,12,4,5,6,12,5,12]

>>>print(a_list.count(12)) #3

例如(sort):

#對列表中的元素排序

>>>a_list =[1,12,4,5,6,12,5,12]

>>>a_list.sort()

>>>print(a_list) # [1, 4, 5, 5, 6, 12, 12, 12]

四、 本節(jié)回顧總結(jié)

1) Python中列表和元組有哪些區(qū)別?

2) 如何通過索引獲取子序列?

3) 列表和元組支持哪些運算?

4) 獲取列表和元組的長度、最大值和最小值?

5) 列表中元素的增加、刪除和修改?

6) 關(guān)于列表的其它常用方法?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容