在開始說新的內容之前,我們先來溫故一下前面的知識點。前面我們提過for嵌套,那麼大家是否知道我們在什麼時候會用到for循環與嵌套呢?大家只要記住,只要在產生迭代對象的時候我們纔可以用到for語句。For語句不同於while語句,while語句無論在什麼時候都可以用。好了,不跟大家廢話了,接下來爲大家介紹的是列表。
一:列表(list)
1、列表是由一系列特定元素組成的,無素和元系之間沒有任何關聯關係,但他們之間有先後順序關係。列表是一種容器(容器是計算機用來存儲數據的東西),是序列的一種。而且列表可以是被改變的序列(可以增、刪裏面的數據)。
2、Python中的序列類型簡介(sequence)
字符串 str
列表 list
元組 tuple
字節串 bytes
字節數組 bytearray
3、列表的創建方法(列表裏面什麼東西都可以放)
L = [ ] # L綁定空列表
L = [1,2,3,4] # L綁定非空列表
L = [‘北京’,’上海’,’重慶’]
L = [1,’three’,3,’四’]
L = [1,2,[3.1,3.2,3.3],4]
4、列表的構造(創建)函數list
List() 生成一個空的列表,等同於[]
List(iterable) 用可迭代對象創建一個列表
示列:
L = list( ) L爲空列表
L = list(‘ABCD’) # L ->[‘A’,’B’,’C’,’D’]
L = list(range(1,10,2)) # 用可迭代對象創建一個列表,起始值是1,終止值是10,步長是2
二:列表的運算
1、算術運算:+ += * *=
+:用於拼接列表:如
X = [1,2,3]
y = [4,5,6]
z = x + y # z = [1,2,3,4,5,6]
+=:用於原列表與右側可迭代對象進行拼接,生成新的列表
x = [1,2,3]
x += [4,5,6] # x = [1,2,3,4,5,6]
x += ‘ABC’ # ?
*:生成重複的列表
X = [1,2,3] * 2 # x = [1,2,3,1,2,3]
*=:用於生成重複的列表,同時用變量綁定新列表
x = [1,2]
x *= 3 # x = [1,2,1,2,1,2]
三:列表的比較運算
1、運算符:< <= > >= == !=
比較規則與字符串一樣,第一個與第一個比較,第二個與第二個比較
X = [1,2,3]
y = [2,3,4]
x != y # True
x > [1,2] # True (在x裏面有第三個數,[1,2]沒有,所以x大)
x < y # True (y列表的第一個數大於x列表的第一個數,所以y大)
[1,3,2] > [1,2,3] # True (第一個列表的第二個數大於第二個列表的第二個數)
[‘AB’, ’CD’] > [‘AC’, ‘BD’] # False (第一個列表的字符串的B小於第二個字符串的C)
[1,’two’] > [‘two’, 1] # TypeError (報錯了,數字和字符串是不能比較的)
四:列表的in /not in
作用:判斷一個數據元素是否存在於容器(列表)內,如果存在返回True,否則返回False。
Not in 的返回值與 in運算符相反(存在返回False,不存在,就返回True)
示列:
X = [1, ‘two’, 3.14, ‘四’]
1 in x #True
2 in x #False
3 not in x #false
五:列表的索引
1、語法:列表[整數表達式]
2、用法:列表的索引取值與字符串的索引取值規則完全相同。列表的索引分爲正向索引和反向索引。
3、示例:
L = [‘A’, 2, ‘B’, 3]
Print(L[1]) # 列表的索引和字符串一樣,從0開始取,第一個數是2
X = L[2] # x = ‘B’
六:列表的索引賦值
1、列表是可變的序列,可以通過索引賦值改變列表中的元素
2、語法:
列表[索引] = 表達式
L = [1,2,3,4]
L[2] = 3.1415926 #改變了列表y第三個元素的值
七:列表的切片
1、列表[:]
列表的[::]
列表的切片取值返回一個新列表,規則等同於字符串的切片規則
示列:
X = list(range(9))
y = x[1:9:2] # y = [1,3,5,7]
2、列表的切片賦值語法:
列表[切片] = 可迭代對象
說明:切片賦值的賦值運算符的右側必須是一個可迭代對象(開始值和終止值相同的時候,是往裏面添加數 據)
示例:
L = [2,3,4]
L = [0:1] = [1.1, 2.2]
Print(L) # [1.1, 2.2, 3, 4]
L = [2, 3, 4]
L[:] = [7, 8]
L = [2, 3, 4]
L [1:1] = [2.1. 2.2] # L = [2, 2.1, 2.2, 3, 4]
L = [2, 3, 4]
L [0:0] = [0, 1] # L = [0, 1, 2, 3, 4] (從列表的開頭,下標爲索引0的地方,把0和1=添加進去)
L = [2, 3, 4]
L [3:3] = [5,6] # L = [2, 3, 4, 5, 6] (在列表的未尾添加5和6)
L = [2, 3, 4]
L [1:2] = [] # L = [2, 4] (刪除列表中第二個元素3)
3、切片步長不爲1的切片賦值:
L = list(range(1, 9))
L[1::2] = [2.2, 4.4, 6.6, 8.8]
案例分析:定義一個列表,列表值爲可迭代對象(0~9),然後從下標爲1的地方切,步長是2(每走兩步, 用2.2,4.4,6.6,8.8替換原列表裏面的值)。最後結果如下圖所示:
4、切片的注意事項:
對於步長不等於1的切片賦值,賦值運算符的左側的可迭代對象提供元素的個數一定要等於切片切出的段數。
示例:(猜猜看,列表L的值是什麼)
L = [1,2,3,4,5,6]
L[::2] = ‘ABC’
Print(L)
八:刪除列表元素
1、del語句用於刪除列表元素
2、語法:
del 列表[索引]
del 列表[切片]
示例:
L = [1,2,3,4,5,6]
del L[0] # L =[2,3,4,5,6]
del L[-1] # L =[2,3,4,5]
九:python3常用的序列函數:(除之前講過的len\max\min外加上下面的)
sum(X) 返回序列中所有元素的和(元素必須是數值類型)
any(x) 真值測試,如果列表中其中一個值爲真值則返回True,否則返回False
all(x) 真值測試,如果列表中所有值爲真值,則返回True,只要有一個爲假,則返回假
十:練習
1、已知有列表:L = [3,5],用索引和切片操作,將列表改爲:L = [1,2,3,4,5,6],將列表反轉(前後對調),然後刪除最後一個元素。
2、寫一個程序,讓用戶循環整數,當輸入-1時結束輸入,並將這些整數存在於列表L中,打印輸出有效的數,找出最大值和最小值並輸出,最後求出這些數的平均值是多少?
推薦我們的Python學習扣qun:784758214 ,看看前輩們是如何學習的!從基礎的python腳本到web開發、爬蟲、django、數據挖掘等【PDF,實戰源碼】,零基礎到項目實戰的資料都有整理。送給每一位python的小夥伴!每天都有大牛定時講解Python技術,分享一些學習的方法和需要注意的小細節,點擊加入我們的 python學習者聚集地
尾聲:這就是我們今天所講的列表list,大家下去以後要多多練習哦!如喜歡小編的乾貨,請互關、加粉和評論,編一定會創造更加優質的內容與大家分享!謝謝!