列表list初識 列表是python的基礎數據類型之一 ,它是以[ ]括起來, 每個元素用' , '隔開而且可以存放各種數據類型: list列表的定義: 列表的索引和切片操作: 列表的訪問與字元串切片類似,通過索引訪問列表元素,列表的切片也與字元串類似. 列表的常用方法:append():向列表的末 ...
列表list初識
列表是python的基礎數據類型之一 ,它是以[ ]括起來, 每個元素用' , '隔開而且可以存放各種數據類型:
list列表的定義:
list_ = []
list_1 = ["aaa","bbb","cccc","ddd"] list_2 = [1,2,3,4,5] list_3 = ["abc",145,True,["小明","小紅",278,33.9],25.9]
列表的索引和切片操作:
list_1 = ["abc",145,True,["小明","小紅",278,33.9],25.9] # 列表的訪問是通過下標的方式 print(list_1[0]) # 訪問列表第一個元素 print(list_1[1]) # 訪問列表第二個元素 print(list_1[-1]) # 訪問列表最後一個元素 print(list_1) # 訪問整個列表
列表的訪問與字元串切片類似,通過索引訪問列表元素,列表的切片也與字元串類似.
列表的常用方法:
append():向列表的末尾追加元素:
list_1 = ["abc",145,True,["小明","小紅",278,33.9],25.9] list_1.append("我是追加的") # 列印如下內容: ['abc', 145, True, ['小明', '小紅', 278, 33.9], 25.9, '我是追加的']
extend(可迭代對象):列表中迭代添加數據:
list_1 = ["abc",145,True,["小明","小紅",278,33.9],25.9] list_1.extend("我是迭代的") print(list_1) # 列印如下內容: ['abc', 145, True, ['小明', '小紅', 278, 33.9], 25.9, '我', '是', '迭', '代', '的']
註意extend(參數)必須是可迭代的對象如list,str,dict,tuple,set等,如整形,bool是不可迭代的所以不能用作參數
insert(index,object):列表中插入元素
list_1 = ["abc",145,True,["小明","小紅",278,33.9],25.9] list_1.insert(1,"我是插入的") # 預設插在列表的末尾 # 列印如下內容: ['abc', '我是插入的', 145, True, ['小明', '小紅', 278, 33.9], 25.9]
註意:如果用戶輸入的索引超過列表的範圍則添加到列表的末尾.
del 刪除列表,列表中的元素:
list_1 = ["abc",145,True,["小明","小紅",278,33.9],25.9] del list_1 # 刪除列表中所有元素,包括列表名 list_1 = ["abc",145,True,["小明","小紅",278,33.9],25.9] del list_1[0] # 根據列表索引進行刪除,刪除列表中的第一個元素 print(list_1) # 列印內容如下: [145, True, ['小明', '小紅', 278, 33.9], 25.9]
註意:del是沒有返回值的
pop(index):刪除列表元素,如果沒找到索引報錯.
list_1 = ["abc",145,True,["小明","小紅",278,33.9],25.9] list_1.pop() # 預設不寫參數是刪除末尾元素 print(list_1) # 列印內容如下: ['abc', 145, True, ['小明', '小紅', 278, 33.9]]
pop(索引,提示信息):根據索引刪除列表元素,如果沒有列印一條提示信息
list_1 = ["abc",145,True,["小明","小紅",278,33.9],25.9] list_1.pop(1) # 根據索引刪除元素,刪除第一個索引元素 print(list_1) # 列印內容如下: ['abc', True, ['小明', '小紅', 278, 33.9], 25.9]
註意pop()刪除是有返回值的,可以用一個變數來接收被刪除的數據
remove(object):根據元素名刪除元素
list_1 = ["abc",145,True,["小明","小紅",278,33.9],25.9] list_1.remove(True) # 根據元素的名稱刪除元素 print(list_1) # 列印內容如下: ['abc', 145, ['小明', '小紅', 278, 33.9], 25.9]
clear():清空列表
list_1 = ["abc",145,True,["小明","小紅",278,33.9],25.9] list_1.clear() print(list_1) # 列印內容如下: []
copy():拷貝整個列表(淺拷貝)
list_1 = ["abc",145,True,["小明","小紅",278,33.9],25.9] list_2 = list_1.copy() # 將list_1拷貝一份到list_2 print(list_2) # 列印內容如下: ['abc', 145, True, ['小明', '小紅', 278, 33.9], 25.9]
reverse():列表倒序,將列表中的內容倒過來(而不是由升序轉為降序.是對列表索引的操作)
list_1 = ["abc",145,True,["小明","小紅",278,33.9],25.9] list_1.reverse() print(list_1) # 列印內容如下: [25.9, ['小明', '小紅', 278, 33.9], True, 145, 'abc'] # ['小明', '小紅', 278, 33.9] 沒有被改變
註意:reverse()函數只能是操作本層的對於內部嵌套的數據不能進行改變
sort():升序排列,字元串是按照ASCII碼表進行排序
list_1 = [1,4,88,3,2,77] list_1.sort() # 升序排列 print(list_1) # 列印內容如下: [1, 2, 3, 4, 77, 88] list_1 = [1,4,88,3,2,77] list_1.sort(reverse = True) # 降序排列 print(list_1) # 列印內容如下: [88, 77, 4, 3, 2, 1]
sort()排序只支持同種類型進行對比,不支持其它類型進行對比排序.例如字元串只能和字元串相比,整形只能和整形相比較.
count(str,start,end):統計字元串出現的次數.預設不寫start和end將在整個字元串中查找,如果設置start和end則會在指定的範圍內進行查找.在字元串中可以指定範圍,在列表中不允許指定範圍,只能在整個列表進行查找
buf = "testttt" num = buf.count("t") # 在整個字元串內進行查找 print(num) # 列印內容如下: 5 buf = "testttt" num = buf.count("t",0,4) # 在字元串的前三位進行查找 print(num) # 列印內容如下: 2
list_1 = [1,145,8,"小明","小紅",278,33.9,1,25.9] num = list_1.count(1) # 列表中不能指定範圍查找 print(num) #列印如下內容 2
index(object,start,end):預設只寫object會在整個列表中進行查找,但是只顯示找到第一個元素的索引.可以指定start和end來指定查找範圍.
list_1 = [1,145,8,"小明","小紅",278,33.9,1,25.9] num = list_1.index(8) # 在整個列表中進行查找 print(num) # 列印如下內容: 2
list_1 = [1,145,8,"小明","小紅",278,33.9,1,25.9] num = list_1.index(8,0,2) # 在前兩個元素進行查找,找不到會報錯 print(num) # 列印內容如下: ValueError: 8 is not in list
range(start,end,step):與列表的切片類似可以指定步長,下麵是常用方法:
for i in range(5): print(i) for i in range(100,0,-1): # 倒序列印100-1 print(i) for i in range(1,100,2): # 列印1-100所有奇數 print(i) for i in range(2,101,2): # 列印1-100所有偶數 print(i)