1. 程式人生 > 實用技巧 >Python中列表詳解

Python中列表詳解

一、列表

1.列表是Python中常用的資料型別之一,書寫格式為:使用一對中括號包含列表內容 list=[]

2.建立列表

  • 建立一個空列表
  • 建立一個普通列表
  • 建立一個混合列表
    #建立一個空列表
    list1=[]
    #建立一個普通列表
    list2=[1,23,4,5]
    #建立一個混合列表
    list=[1,2,True,12.58,'你好',[1,2,3],{'name':"小明"},(12,3)]
    
    輸出結果:
    print(list1)
    print(list2)
    print(list)

3.列表可以存放的內容

  • 列表可以存放Python中所學的所有型別
    #列表list
    list=[1,2,True,12.58,'
    你好',[1,2,3],{'name':"小明"},(12,3)] print(list) print(type(list)) 輸出結果: [1, 2, True, 12.58, '你好', [1, 2, 3], {'name': '小明'}, (12, 3)] <class 'list'>

4.計算列表的長度,使用len()方法

#計算列表的長度
list=[1,2,True,12.58,'你好',[1,2,3],{'name':"小明"},(12,3)]
print(len(list))

輸出結果:
8

5.獲取列表中的值,也是使用索引去獲取(使用方法和字串索引相同)

  • 通過索引找到列表對應的值,返回結果還是個列表
  • 該元素是什麼資料型別,索引得到的結果就是什麼資料型別,不會發生改變
    #通過索引獲取列表元素
    list=[1,2,True,12.58,'你好',[1,2,3],{'name':"小明"},(12,3)]
    print(list[2])   #獲取列表中索引值為2的元素    對應為True
    print(type(list[2]))  #獲取的元素的數量型別,和之前的資料型別一樣
    print(list[5])
    print(type(list[5]))
    print(list[6])
    print(type(list[6]))
    print(list[7])
    
    print(type(list[7])) 輸出結果: True <class 'bool'> [1, 2, 3] <class 'list'> {'name': '小明'} <class 'dict'> (12, 3) <class 'tuple'>

  • 列表的切片,得到的結果還是個列表
    #列表list
    list=[1,2,True,12.58,'你好',[1,2,3],{'name':"小明"},(12,3)]
    
    print(list[0:5])  #從頭到索引為5的位置,所有的元素,取頭不取尾
    print(list[::2])  #取出列表中,步長為2的資料
    print(list[0:6:3])  #取出從頭到索引值為6的資料中,步長為3的資料
    print(type(list[0:6:3]))  #進行切片後得到的結果,還是列表
    
    輸出結果:
    [1, 2, True, 12.58, '你好']
    [1, True, '你好', {'name': '小明'}]
    [1, 12.58]
    <class 'list'>

二、列表的常用操作(增刪改查)

1.列表新增元素

  • 使用append()方法,預設是在列表末尾追加新的物件,也就是將引數作為一個元素增加到列表尾部。(append的引數只有一個,append一次只能新增一個元素)
    #使用append新增元素
    list3=[1,4,5]
    list3.append(['你好',10])   #新增一個列表
    print(list3)
    
    輸出結果:
    [1, 4, 5, ['你好', 10]]

  • append()方法對列表作用,但是實際的新增過程,返回的結果為None,這是python中append()方法的實現規則
    #列表末尾追加元素
    list3=[1,4,5]
    list3.append(['你好',10])
    print(list3)
    print(list3.append(['你好',10]))
    
    輸出結果:
    [1, 4, 5, ['你好', 10]]
    None

  • extend():在列表的尾部一次性追加另一個序列中的多個值,即將引數作為一個列表去擴充套件原列表,列表合併
    #向列表list中,追加列表list3
    list=[1,2,True,12.58,'你好',[1,2,3],{'name':"小明"},(12,3)]
    list3=[1,4,5]
    list.extend(list3)
    print(list)
    
    輸出結果:
    [1, 2, True, 12.58, '你好', [1, 2, 3], {'name': '小明'}, (12, 3), 1, 4, 5]

  • insert() :在指定的位置插入對應的引數,insert()接收兩個引數,第一個引數傳入的是指定插入的位置,第二個引數傳入的是指定位置待插入的引數
    #在索引值為1的位置插入一個字串
    list=[1,2,True,12.58,'你好',[1,2,3],{'name':"小明"},(12,3)]
    list.insert(1,"歡迎使用列表list")
    print(list)
    
    輸出結果:
    [1, '歡迎使用列表list', 2, True, 12.58, '你好', [1, 2, 3], {'name': '小明'}, (12, 3)]

2.刪除列表中的元素

  • remove() :刪除指定的內容(不知道索引的位置,值知道列表中的具體內容,一定是存在的引數才可以刪除,列表中不存在的是無法操作,會報錯:ValueError: list.remove(x): x not in list
    #移除列表元素
    list=[1,2,True,12.58,'你好',[1,2,3],{'name':"小明"},(12,3)]
    list.remove('你好')
    print(list)
    list.remove('nihao')  #移除的列表元素不存在
    
    輸出結果:
    [1, 2, True, 12.58, [1, 2, 3], {'name': '小明'}, (12, 3)]
    ValueError: list.remove(x): x not in list  #移除不存在的元素會報錯

  • remove()只能移除一個元素,如果列表中含有多個相同元素,預設是移除第一個
    list=[1,2,True,12.58,'你好',[1,2,3],'你好',{'name':"小明"},'你好',(12,3)]
    list.remove('你好')
    print(list)
    
    輸出結果:
    [1, 2, True, 12.58, [1, 2, 3], '你好', {'name': '小明'}, '你好', (12, 3)]

  • pop() :刪除指定的索引位置,返回結果是刪除的元素值(pop()如果不傳入對應的索引值,預設是移除列表中的最後一個元素)
    #指定pop()刪除的索引值
    list=[1,2,True,12.58,'你好',[1,2,3],'你好',{'name':"小明"},'你好',(12,3)]
    ele=list.pop(-2)
    print(ele)
    print(list)
    
    輸出結果:
    你好
    [1, 2, True, 12.58, '你好', [1, 2, 3], '你好', {'name': '小明'}, (12, 3)]
    
    
    #未指定pop()索引值
    list=[1,2,True,12.58,'你好',[1,2,3],'你好',{'name':"小明"},'你好',(12,3)]
    ele1=list.pop()
    print(ele1)
    print(list)
    
    輸出結果:
    (12, 3)
    [1, 2, True, 12.58, '你好', [1, 2, 3], '你好', {'name': '小明'}, '你好']

三、修改列表元素

  • 通過索引值取出對應元素,用新的元素替換掉舊的元素
    #使用索引值取出需要修改的元素,然後進行替換
    list=[1,2,True,12.58,'你好',[1,2,3],'你好',{'name':"小明"},'你好',(12,3)]
    list[-2]="藍天"
    print(list)
    
    輸出結果:
    [1, 2, True, 12.58, '你好', [1, 2, 3], '你好', {'name': '小明'}, '藍天', (12, 3)]

四、列表中常用的函式方法

  • clear() 清除列表元素(其中,list.clear() 返回結果為None)
    list=[1,2,True,12.58,'你好',[1,2,3],'你好',{'name':"小明"},'你好',(12,3)]
    list.clear()
    print(list.clear())
    print(list)
    
    輸出結果:
    None
    []
  • sort() 排序,是對列表中的數字進行排序,文字,字串不需要排序
    list=[12,22,3,6,5,8,90]
    list.sort()
    print(list)
    
    輸出結果:
    [3, 5, 6, 8, 12, 22, 90]
  • reverse() 降序,是對列表中的數字進行降序,文字,字串不需要
    #先將列表進行排序,然後再由大到小的方式進行降序的方法
    list=[12,22,3,6,5,8,90]
    list.sort(reverse=True)
    print(list)
    
    輸出結果:
    [90, 22, 12, 8, 6, 5, 3]
    
    
    #直接對原有的列表進行降序
    list=[12,22,3,6,5,8,90]
    list.reverse()
    print(list)
    
    輸出結果:
    [90, 8, 5, 6, 3, 22, 12]