python的列表、元組及其常用操作(方法、函式)
列表(List)
為便於瀏覽,程式碼展示部分整體被放在文字的最下面
格式:[元素1, 元素2, 元素3, ..., 元素n]
特點
增刪查改
增
.append(元素),增加新元素到列表末尾
元素也可以是一個列表,被整體巢狀新增至末尾
.insert(index, object) 在指定下標位置index前插入元素object
.extend(j),通過extend可以將另一個集合j中的元素逐一新增到列表末尾
刪
del list[下標] : 根據下標進行刪除
.pop() : 刪除最後一個元素
.remove() : 根據元素的值進行刪除(僅刪除第一次出現的)
查
邏輯判斷條件: 元素 in(not in)列表:
not in(不存在),如果不存在那麼結果為true,否則false
in(存在),如果存在那麼結果為true,否則為false
.index(元素[,初始下標,結束下標] ) [ ]不需要寫,只是代表[ ]內的引數可以省略
在指定範圍內查詢元素第一次出現的下標,不存在則報異常
.count(元素 )
查詢列表中該元素共出現的次數
改
修改元素的時候通過指定下標來訪問列表元素,為指定的列表下標賦值即可
排序
.sort( reverse=False ) 將列表順序排列,預設按數值從小到大排序
reverse=Turn 從大到小排序,
不同字元,按照編碼的數值大小進行排序
反轉(逆置)
.reverse() 將列表內所有元素進行直接倒置反轉(沒有排序)
列表巢狀
操作巢狀列表,只要把要操作元素的下標當作變數名來使用即可
元組(Tuple)
格式:(元素1, 元素2, 元素3, ..., 元素n)
特點
查
邏輯判斷條件: 元素 in(not in)列表:
not in(不存在),如果不存在那麼結果為true,否則false
in(存在),如果存在那麼結果為true,否則為false
.index(元素[,初始下標,結束下標] )
在指定範圍內查詢元素第一次出現的下標,不存在則報異常
.count(元素)
查詢元組中該元素共出現的次數
程式碼
列表的使用效果
增 ---append ---insert ---extend
#定義一個列表用於測試
>>> list1 = [1,'a',2,'b','中國','str']
#新增一個元素至列表末尾
>>> list1.append('sss')
#檢視新增後的列表內容
>>> list1
[1, 'a', 2, 'b', '中國', 'str', 'sss']
#指定下標,新增一個元素至下標前面
>>> list1.insert(5,'插入資料')
>>> list1
[1, 'a', 2, 'b', '中國', '插入資料', 'str', 'sss']
#測試插入一個整體列表
>>> list1.append([1,2,3,4,5])
#檢視修改後,整個列表被當作一個元素插入
>>> list1
[1, 'a', 2, 'b', '中國', '插入資料', 'str', 'sss', [1, 2, 3, 4, 5]]
#整體元組被當作一個元素插入
>>> list1.append((1,1,1,1,1))
>>> list1
[1, 'a', 2, 'b', '中國', '插入資料', 'str', 'sss', [1, 2, 3, 4, 5], (1, 1, 1, 1, 1)]
#整個字典被當作一個元素插入
>>> list1.append({'name':'張三','age':'18'})
>>> list1
[1, 'a', 2, 'b', '中國', '插入資料', 'str', 'sss', [1, 2, 3, 4, 5], (1, 1, 1, 1, 1), {'name': '張三', 'age': '18'}]
#使用extend插入列表,列表中的元素被取出,分別作為一個元素新增到列表末尾
>>> list1.extend([666,666,666])
>>> list1
[1, 'a', 2, 'b', '中國', '插入資料', 'str', 'sss', [1, 2, 3, 4, 5], (1, 1, 1, 1, 1), {'name': '張三', 'age': '18'}, 666, 666, 666]
#使用extend新增元組
>>> list1.extend((777,777,777))
>>> list1
[1, 'a', 2, 'b', '中國', '插入資料', 'str', 'sss', [1, 2, 3, 4, 5], (1, 1, 1, 1, 1), {'name': '張三', 'age': '18'}, 666, 666, 666, 777, 777, 777]
使用extend新增字典,字典的每一個鍵被當作一個元素插入到列表中
>>> list1.extend({'123':'sss1','456':'sss2'})
>>> list1
[1, 'a', 2, 'b', '中國', '插入資料', 'str', 'sss', [1, 2, 3, 4, 5], (1, 1, 1, 1, 1), {'name': '張三', 'age': '18'}, 666, 666, 666, 777, 777, 777, '123', '456']
>>> list1.extend(*{'123':'sss1','456':'sss2'})
刪 ---del ---pop ---remove
#定義一個列表
>>> list0 = [1,2,3,4,5]
>>> del list0
>>> list0
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
list0
NameError: name 'list0' is not defined
#報錯 del 列表 會將整個列表刪除,再次查詢列表就不存在了
>>> list1 = [1,2,3,4,5,6]
#指定下標進行刪除元素
>>> del list1[0]
>>> list1
[2, 3, 4, 5, 6]
>>> del list1[2]
>>> list1
[2, 3, 5, 6]
#pop是一種特殊的用法,會將列表中最後一個元素取出並返回,
#取出後原列表中該元素就不存在了,所以可以理解成刪除除
>>> list1.pop()
6
>>> list1
[2, 3, 5]
>>> list1.pop()
5
>>> list1
[2, 3]
#空的列表不可以取出元素,會報錯
>>> [].pop()
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
[].pop()
IndexError: pop from empty list
#remove可以指定元素值進行刪除,但只會刪除第一次刪除的值
>>> list2 = [1,2,1,2,3,4,5]
>>> list2.remove(1)
>>> list2
[2, 1, 2, 3, 4, 5]
>>> list2.remove(2)
>>> list2
[1, 2, 3, 4, 5]
查 ---in ---not in ---index ---count
>>> [1] in [1,2,3,4,5]
False
#元素的值用(元素)包裹,使用[元素]是一個列表
>>> (1) in [1,2,3,4,5]
True
>>> [1] in [[1],1,2,3,4]
True
#也可以直接使用,不用()
>>> 'abc' in ['abc','sss','ddd']
True
>>>
>>> 5 not in [1,2,3,4,5]
False
>>> 5 not in [1,2,3,4]
True
>>> list1 = ['a','b','c','d','e']
>>> list1
['a', 'b', 'c', 'd', 'e']
#查詢字元c在列表中第一次出現的下標
>>> list1.index('c')
2
#index查詢指定元素的下標,不存時會報錯丟擲值不存在的異常
>>> list1.index('f')
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
list1.index('f')
ValueError: 'f' is not in list
#可以指定查詢範圍進行查詢
>>> list1.index('c',0,3)
2
#查詢範圍,包含起始下標位,不包含結束位下標
>>> list1.index('c',0,2)
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
list1.index('c',0,2)
ValueError: 'c' is not in list
#使用count可以查詢指定元素共出現的次數
>>> list2 = [1,2,2,3,3,3,4,4,4,4]
>>> list2.count(1)
1
>>> list2.count(3)
3
>>> list2.count(5)
0
改 ---對指定下標進行重新賦值即可
>>> list1=[0,1,2,3,4]
>>> list1[1]=100
>>> list1
[0, 100, 2, 3, 4]
>>> list1[0] = "中國"
>>> list1
['中國', 100, 2, 3, 4]
>>>
排序 ---sort
>>> list2 = [2,3,22,11,1,44,23,4,1]
>>> list2.sort()
>>> list2
[1, 1, 2, 3, 4, 11, 22, 23, 44]
#數值按照大小進行排序,預設正序
>>> list2 = ['a','f','g','b']
>>> list2.sort()
>>> list2
['a', 'b', 'f', 'g']
#字元按照字元編碼順序進行排序
>>> list3 = [1,2,4,3,'a','c','b','3',2]
>>> list3
[1, 2, 4, 3, 'a', 'c', 'b', '3', 2]
>>> list3.sort()
Traceback (most recent call last):
File "<pyshell#36>", line 1, in <module>
list3.sort()
TypeError: '<' not supported between instances of 'str' and 'int'、
#字元和數值不可以進行一起排序,1是數值,'1'是字串
#使用引數reverse=True,可以進行倒序
>>> list1 = [2,1,3,5,6,7]
>>> list1.sort(reverse=True)
>>> list1
[7, 6, 5, 3, 2, 1]
反轉--- reverse
#reserve只進行翻轉,並不進行排序
>>> list2 = [2,1,9,8,4,5,67]
>>> list2.reverse()
>>> list2
[67, 5, 4, 8, 9, 1, 2]
列表巢狀
>>> list0 = [[1,2,3,4],1,['a','b','c'],2,['中','國'],3,4,5,6]
>>> list0
[[1, 2, 3, 4], 1, ['a', 'b', 'c'], 2, ['中', '國'], 3, 4, 5, 6]
>>> list0[3]
2
#檢視4號下標的元素
>>> list0[4]
['中', '國']
#取出的元素是一個列表,將這個取出的元素作為一個列表,在這個基礎上繼續取下標
>>> list0[4][0]
'中'
>>> list0[4][1]
'國'
>>> list0[0]
[1, 2, 3, 4]
>>> list0[0][3]
4
#多層巢狀都是一樣的,在前一層的基礎上繼續取值
>>> list1 = [0,['中國',['a','b'],2,3,4,],2]
>>> list1[1]
['中國', ['a', 'b'], 2, 3, 4]
>>> list1[1][0]
'中國'
>>> list1[1][1]
['a', 'b']
>>> list1[1][1][0]
'a'
>>>
元組為不可變型別,只可以進行查詢,不能夠進行增改刪
使用方法和列表類似,暫不舉例了