Python中的列表詳解
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python列表詳解Python
- Python之列表與元組的區別詳解Python
- python列表(list)和元組(tuple)詳解Python
- 列表詳解
- 詳解Python中的程式Python
- Python中的Super詳解Python
- Python 列表、元組、字典及集合操作詳解Python
- Python中列表的方法Python
- python中的列表操作Python
- Python3中的列表生成式、生成器與迭代器例項詳解Python
- python中dict詳解Python
- Python中字典使用詳解Python
- python中list切片詳解Python
- 詳解Python中的str.format方法PythonORM
- python中變數的命名及詳解Python變數
- python中列表相加Python
- python基礎(8)python中is和==的區別詳解Python
- Python3中urlopen()詳解Python
- Python中協程(coroutine)詳解Python
- Python中Numpy函式詳解Python函式
- Python中列表的深淺拷貝Python
- Python中列表和字串的反轉Python字串
- Python中none和null的區別詳解!PythonNoneNull
- Python中基於匹配項的子列表列表串聯Python
- python的列表[]Python
- Python刪除列表中的非字母字元Python字元
- Python3中使用PyMongo的方法詳解PythonGo
- Python 中的設計模式詳解之:策略模式Python設計模式
- Python3中*和**運算子的用法詳解!Python
- python列表追加元素出錯的解決Python
- python中yield的用法詳解——最簡單,最清晰的解釋Python
- 玩轉python字典與列表(中)Python
- python中列表如何去除重複Python
- Python中dumps, loads dump, load用法詳解Python
- Python 中__new__方法詳解及使用Python
- Python中裝飾器語法詳解Python
- Python Pandas的使用 !!!!!詳解Python
- jQuery新聞列表垂直滾動詳解jQuery