1. 程式人生 > >python第五天,基礎知識【列表】

python第五天,基礎知識【列表】

本節內容:

  • 列表(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]