Python中的列表詳解

新夢想IT發表於2022-08-03

Python中的列表詳解

一、列表是什麼?

List是 python 中的一種資料型別,它由一組有序的元素組成。支援字元、數字、字串甚至也可以包含列表(列表中有列表,巢狀),元素間用逗號進行分隔。

列表用 []進行標識。

 

二、列表的訪問與操作

1.列表的定義

1)定義一個空列表:

list_stu1 = []

list_stu2 = list()

 

2)定義一個有學生資訊的列表:

list_stu1 = ['張三',19,'男','長沙',13434343434] #使用一個列表存一個學生的基本資訊 

print(list_stu1) 

list_stu2 = [['張三',19,'男','長沙',13434343434], #透過列表巢狀存多個學生的資訊 

                 ['李四',18,'男','武漢',13535353535], 

                 ['王五',22,'女','上海',13636363636]] 

print(list_stu2)

[‘張三’, 19, ‘男’, ‘長沙’, 13434343434]

[[‘張三’, 19, ‘男’, ‘長沙’, 13434343434], [‘李四’, 18, ‘男’, ‘武漢’, 13535353535], [‘王五’, 22, ‘女’, ‘上海’, 13636363636]]

 

2.列表的訪問

列表是有序的集合,要訪問其中的元素,可以透過下標的方式進行訪問(類似陣列訪問)

 

1)下標是從0開始,最長不超過len(list)-1

存在學生資訊列表:

list_stu1 = ['張三',19,'男','長沙',13434343434] 

print(len(list_stu1)) print(list_stu1[0]) #取出學生資訊的姓名 

print(list_stu1[1]) #取出學生資訊的年齡 

print(list_stu1[len(list_stu1)]) #報錯,越界

 

2)可以透過list[頭下標:尾下標]的方式擷取列表元素(閉頭開尾原則)

訪問列表需注意:

1、從左到右:從0開始代表第一個數值, 1代表第二個數值 往後以此類推

2、從右到左:從-1開始代表最後一個值,-2代表倒數第二個值 往前以此類推

 

只列印學生的年齡及性別:

print(list_stu1[1:3]) #下標是從0開始,且尾下標是3 

print(list_stu1[-4:-2]) #從右邊開始下標從1開始,且開尾原則

 

檢視姓名外的所有資訊:

print(list_stu1[1:]) #尾下標不填,預設取到元素的最後一個 

print(list_stu1[-4:]) 

print(list_stu1[1:len(list_stu1)+1]) #由於尾下標是開區間,因此最大為len(list)+1

 

3)訪問巢狀列表

存在巢狀列表

list_stu2 = [['張三',19,'男','長沙',13434343434], 

                ['李四',18,'男','武漢',13535353535], 

                 ['王五',22,'女','上海',13636363636]]

 

取出第一個學生的所有資訊:

print(list_stu2[0])

 

列印第一個學生的年齡:

print(list_stu2[0][1]) #看成一個二維陣列進行訪問

 

3.修改列表的值

修改 list_stu2中第二個學生的年齡加1

list_stu2[1][1] = list_stu2[1][1]+1 

print(list_stu2)

 

4.列表的連線與重複操作

加號( +)是列表連線運算子

星號()是重複操作 *

list_stu3 = list_stu1 + list_stu2 #連線兩個列表 

print(list_stu3)

 

[‘張三’, 19, ‘男’, ‘長沙’, 13434343434, [‘張三’, 19, ‘男’, ‘長沙’, 13434343434], [‘李四’, 18, ‘男’, ‘武漢’, 13535353535], [‘王五’, 22, ‘女’, ‘上海’, 13636363636]]

 

print(list_stu1 * 2) #將list_stu1輸出兩次

 

[‘張三’, 19, ‘男’, ‘長沙’, 13434343434, ‘張三’, 19, ‘男’, ‘長沙’, 13434343434]

 

三、列表的常用方法

L.append(var) #追加元素

list_stu1.append('12345678@hnxmxit.com') #新增12345678@hnxmxit.com元素 

list_stu3= ['趙六',18,'男','武漢',13535353535] 

list_stu2.append(list_stu3) #追加列表 

print(list_stu1) 

print(list_stu2)

 

[‘張三’, 19, ‘男’, ‘長沙’, 13434343434, ‘12345678@hnxmxit.com’]

[[‘張三’, 19, ‘男’, ‘長沙’, 13434343434], [‘李四’, 18, ‘男’, ‘武漢’, 13535353535], [‘王五’, 22, ‘女’, ‘上海’, 13636363636], [‘趙六’, 18, ‘男’, ‘武漢’, 13535353535]]

L.insert(index,var) #在指定位置插入元素

 

在列表的第 2個位置插入身份證號

list_stu1.insert(1,'431123201912071234') #指定位置插入

L.pop(var) #返回最後一個元素,並從list中刪除之

 

list_stu1.pop() #刪除最後一個元素 

list_stu1.pop(3) #刪除指定位置的元素

L.remove(var) #刪除第一次出現的該元素

 

list_stu1.remove(19) #刪除第一次出現的指定元素 

list_stu1.remove('newdream') #報錯,列表不存在指定元素

L.count(var) #該元素在列表中出現的個數

 

print(list_stu1.count(19)) #統計指定元素出現的次數,並返回次數

L.index(var) #該元素的位置,無則拋異常

 

print(list_stu1.index('男')) #返回元素所在的位置 

print(list_stu1.index('newdream')) #拋異常,不存在該元素

L.extend(list) #追加list,即合併list到L上

 

a = 'newdream' 

list = ['newdream'] 

list_stu1.extend(a) #將變數的值合併到列表,並拆分成為列表的元素 

list_stu1.extend(list) #將另一個列表合併到列表

[‘張三’, 19, ‘男’, ‘長沙’, 13434343434, ‘n’, ‘e’, ‘w’, ‘d’, ‘r’, ‘e’, ‘a’, ‘m’, ‘newdream’]

L.sort() #排序

list_stu1.sort() #報錯,型別不統一 

list1 = [0,1,0,3,1,8] 

list2= ['c','y','a','b'] 

list1.sort() #按數值的升序排序,且會改變原列表的順序 

print(list1) 

list2.sort() #按字母的升序排序,且會改變原列表的順序 

print(list2)

L.reverse() #反轉

 

list_stu1 = ['張三',19,'男','長沙',13434343434] 

list_stu1.reverse() #反轉列表元素 

print(list_stu1)

[13434343434, ‘長沙’, ‘男’, 19, ‘張三’]

 

四、列表的複製

列表的複製有兩種:

1.透過指向同一地址,使兩個列表指向同一個記憶體地址,從而實現複製。

好比人都有名字,有些有小名,但是指的都是同一個人,當這個人換了衣服,那不管叫的是這個人的名字還是小名,都是指這個換了衣服的人

list_stu1 = ['張三',19,'男','長沙',13434343434] 

list_stu3 = list_stu1 #兩個列表指向同一個地址 

list_stu3[0]='複製的張三' #當一個列表修改元素值時,兩個列表都相應的做修改了 

print(list_stu3) 

print(list_stu1) 

print(id(list_stu1)) #指向的是同一個記憶體地址 

print(id(list_stu3))

 

[‘複製的張三’, 19, ‘男’, ‘長沙’, 13434343434]

[‘複製的張三’, 19, ‘男’, ‘長沙’, 13434343434]

 

2.將列表的元素複製給了另一個列表,且兩個列表間的元素互不影響

list_stu1 = ['張三',19,'男','長沙',13434343434] 

list_stu3 = list_stu1[:] #將所有元素賦給另一個列表 

list_stu3[1] = 20 #當修改一個列表的值時,另一個列表的元素不受影響 

print(list_stu1) 

print(list_stu3) 

print(id(list_stu1)) 

print(id(list_stu3))

 

[‘張三’, 19, ‘男’, ‘長沙’, 13434343434]

[‘張三’, 20, ‘男’, ‘長沙’, 13434343434]

18695672

18696832


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69940641/viewspace-2908837/,如需轉載,請註明出處,否則將追究法律責任。

相關文章