python第五天,基礎知識【列表】
阿新 • • 發佈:2019-01-13
本節內容:
- 列表(List)
- 查
- 索引(下標),都是從0開始的
- 切片
- .count 查某個元素的出現次數
- .index 根據內容找其對應的位置
- 'jameBo' in ['a', 'b', 'c'] 判斷'jameBo'是否存在該列表
- 增加
- a.append() 追加
- a.insert(index, '內容')
- a.extend(['4, 5, 6])
- 修改
- a[index] = '新的值'
- a[startIndex:endIndex] = [a, b, c] 相當於用切片去解構(es6的叫法,類似,所以引用一下)賦值 如果前後位數不對應會出現刪除的狀況,不建議這樣
- 刪除
- a.remove('內容')
- a.pop(index) 刪除並返回被刪除的內容, 如果不指定索引,將會預設刪除最後一個
- del a a物件將被刪除
- a.clear() 將a列表清空,只剩下一個[]
- 排序
- a.sort() 一共3個引數,無引數預設從小到大一次排序
- a.reverse() 反向排序列表中元素
- 身份判斷(type(a) is list)
- 查
tip: 列表與字典是 python 用的最多的
列表
序列是Python中最基本的資料結構。序列中的每個元素都分配一個數字 - 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推。
Python有6個序列的內建型別,但最常見的是列表和元組。
序列都可以進行的操作包括索引,切片,加,乘,檢查成員。
此外,Python已經內建確定序列的長度以及確定最大和最小的元素的方法。
列表是最常用的Python資料型別,它可以作為一個方括號內的逗號分隔值出現。
列表的資料項不需要具有相同的型別
建立一個列表,只要把逗號分隔的不同的資料項使用方括號括起來即可
list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
訪問列表中的值(查)
使用下標索引來訪問列表中的值,同樣你也可以使用方括號的形式擷取字元
list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5, 6, 7 ]
print("list1[0]: ", list1[0]) # 取列表 list1 中的第一個
print("list2[1:5]: ", list2[1:5]) # 取列表 list2 中的第二個到第四個
print(list2[1:-1:1]) # 從左到右依次去取,最後一個引數可以說是取值範圍的步長,預設是1,可以改為2或者其他(正整數),取的時候索引加2或者其他(正整數)去取值
print(list2[1:-1:-1] # 此時)
tip: 取範圍就是 [x:y] 如果 y 為 -1 的話就是取到列表的倒數第二個,如果想取 x+1 到完,y就別賦值即可或者比該列表的長度大
更新列表(新增)
- 你可以對列表的資料項進行修改或更新,你也可以使用append()方法來新增列表項(預設插到最後的位置)
list = [] ## 空列表
list.append('Google') ## 使用 append() 新增元素
list.append('Runoob')
print(list) # 結果:['Google', 'Runoob']
- 可以將需要插入的物件插入到任意一個位置
a = [1, 2, 3, 4, 5]
a.insert(1, 6) # 第一個引數含義:需要插入的索引;第二個引數的含義:需要插入的內容
print(a) # 結果:[1, 6, 2, 3, 4, 5]
修改列表(改)
- 直接用索引取值賦值
a = ['a', 'b', 'c', 'd', 'e']
a[1] = 'f'
print(a) # 結果:['a', 'f', 'c', 'd', 'e']
- 多個賦值
a = ['a', 'b', 'c', 'd', 'e']
a[1:3] = ['f', 'g']
print(a) # 結果:['a', 'f', 'g', 'd', 'e']
刪除(刪,有3中方法: remove, pop, del)
- remove(param)
remove方法只能刪除內容,引數就是要刪除的內容,如果是下標並且列表裡面沒有該下標一樣的值,則會報錯,因為要刪的列表沒有該內容(只能刪一個,會把param當成一個整體去處理)
移除列表中某個值的第一個匹配項
a = ['a', 'b', 'c', 'd', 'e']
a.remove('a')
print(a) # 結果: ['b', 'c', 'd', 'e']
- pop(index)
pop方法刪除引數是下標,比remove多一個功能,就是彈出被刪的內容,和js的pop很是類似啊
a = ['a', 'b', 'c', 'd', 'e']
b = a.pop(1)
print(a) # 結果: ['a', 'c', 'd', 'e']
print(b) # 結果: 'b'
- del params
即可以刪除某個固定的內容,也可以刪除某個物件
a = ['a', 'b', 'c', 'd', 'e']
del a[0]
print(a) # 結果: ['b', 'c', 'd', 'e']
del a
print(a) # 會報錯,因為a這個物件已經被刪除了 NameError: name 'a' is not defined
tip: 賦值為空也是刪除
其他操作
- count()
count 方法統計某個元素在列表中出現的次數
t = ['to', 'be', 'or', 'not', 'to', 'be'].count('to')
print(t) # 結果: 2 代表 'to' 在這個列表裡面出現了2次哦
- extend()
在列表末尾一次性追加另一個序列中的多個值(用新列表擴充套件原來的列表)
a = [1, 2, 3]
b = [4, 5, 6]
a.extend(b)
print(a) # 結果: [1, 2, 3, 4, 5, 6] a和b的結果
print(b) # 結果: [4, 5, 6] 結果不受影響
- index()
從列表中找出某個值第一個匹配項的索引位置
a = ['a', 'b', 'c', 'd', 'e', 'b']
print(a.index('b')) # 結果: 1
- reverse()
反向列表中元素
a = ['a', 'b', 'c']
a.reverse()
print(a) # 結果: ['c', 'b', 'a']
tip: reverse() 是沒有返回值的,如果直接print(a.reverse)結果會是None,是直接處理該列表,並沒有將結果return出去,pop()是將計算機運算的結果return出去,所有會有返回值
- sort()
對原列表進行排序
x = [4, 6, 1, 3]
x.sort()
print(x) # 結果: [1, 3, 4, 6]
b = ['wuchao', 'jinxin', 'xiaohu', 'ligang', 'Wuchao', 'Jinxin', 'Xiaohu', 'Ligang']
b.sort()
print(b) # 結果: ['Jinxin', 'Ligang', 'Wuchao', 'Xiaohu', 'jinxin', 'ligang', 'wuchao', 'xiaohu'] 因為在ascii碼錶裡面大寫是靠前的
list.sort(cmp=None, key=None, reverse=False)
* cmp -- 可選引數, 如果指定了該引數會使用該引數的方法進行排序。
* key -- 主要是用來進行比較的元素,只有一個引數,具體的函式的引數就是取自於可迭代物件中,指定可迭代物件中的一個元素來進行排序。
* reverse -- 排序規則,reverse = True 降序, reverse = False 升序(預設)。
python x = [4, 6, 1, 3] x.sort(reverse=True) print(x) # 結果: [6, 4, 3, 1]