1. 程式人生 > 實用技巧 >Python_note_006(Python中的列表,以及列表的增刪改查操作)

Python_note_006(Python中的列表,以及列表的增刪改查操作)

列表的建立

  • 使用中括號(元素之間使用逗號分開)

    ls=['zhangsan','lisi',200,15.5]
    
  • 使用內建函式list

    ls2=list(['zhangsan','lisi',200,15.5])
    

列表的特點

  • 列表的元素是按順序排列的

  • 索引對映唯一一個數據

  • 列表可以儲存重複資料

  • 任意資料型別混存

  • 根據需要動態分配和回收記憶體

    #列表 混存任意資料型別
    ls=['zhangsan','lisi',200,15.5]
    print(id(l))
    print(type(l))
    print(l)
    #索引對映唯一一個數據 列表可以儲存重複資料
    ls2=list(['zhangsan','zhangsan',200,15.5])
    print(l2[0],l2[-1])#正向索引0到N,逆向索引-N到-1
    

列表的查詢操作

  • 獲取列表中指定元素的索引用 .index()

    #.index()查詢索引
    ls3=list(['zhangsan','zhangsan',200,15.5])
    #如果列表中有相同元素,只返回相同元素的第一個元素的索引。
    #如果查詢的元素列表不存在,則報異常ValueError: '***' is not in list
    print(ls3.index('zhangsan'))
    #指定索引範圍內查詢指定的索引
    print(ls3.index('zhangsan',1,3))
    
  • 獲取列表中的單個元素

    #正向索引0到N,逆向索引-N到-1
    l4=list(['lisi',123,'wangwu',20.5])
    print(l4[2])#檢視索引為2的元素
    print(l4[-2])#檢視索引為-2的元素
    #如果查詢的索引不存在會報錯IndexError: list index out of range
    
  • 獲取列表的多個元素

    語法格式:列表名[start: stop: step]

    #獲取列表的多個元素
    #---------步長step為正數的情況--------------
    ls=[13,25,2131,123,135,431]
    # start不寫,預設是從索引為0開始 如果不寫步長step,預設是步長就是1
    ls2=ls[1:4:2]
    print('原列表',id(ls))
    print('切的分段',id(ls2))
    print(ls2)
    #---------步長step為負數的情況--------------
    ls3=ls[::-1]#輸出結果[431, 135, 123, 2131, 25, 13]
    ls4=ls[5:2:-1]#輸出結果[431, 135, 123]
    print(ls3,ls4)
    
  • 判斷指定元素在列表中是否存在

    #not in 和 in
    ls=[13,25,2131,123,135,431]
    print(13 not in ls)
    print(13 in ls)
    
  • 列表元素的遍歷

    ls=[13,25,2131,123,135,431]
    for n in ls:
        print(n)
    
  • 列表元素的新增操作

    #列表名.append()在列表的末尾新增一個元素
    ls=[13,25,2131,123,135,431]
    print('原列表',ls)
    ls.append('張三')
    print('新增後的列表',ls)
    #列表名.extend()向列表的末尾一次性新增多個元素
    ls2=['zhangsan','lisi']
    ls.extend(ls2)
    print(ls)
    #列表名.insert()在任意位置上新增一個元素
    ls.insert(2,'什麼')
    print(ls)
    #在任意位置新增n個元素(切片)
    #把切掉的位置用一個新的列表新增進去
    ls[1::]=[True,False]
    print(ls)
    
  • 列表元素的刪除操作

    #remove()方式,從列表刪除一個元素,如果有重複只刪除一個
    ls.remove(13)
    #ls.remove(1231223)如果指定的元素不存在,就會報錯:ValueError: list.remove(x): x not in list
    print(ls)
    
    #pop()方式,根據索引移除元素
    ls.pop(1)
    #ls.pop(123)如果指定的索引不存在,就會報錯:IndexError: pop index out of range
    print(ls)
    ls.pop()#如果不指定索引,將刪除列表的最後一個
    print(ls)
    
    #切片方式,刪除至少一個元素,將會產生一個新的物件
    new_ls=ls[1:3]
    print('原列表',ls,id(ls))
    print('新列表',new_ls,id(new_ls))
    #不產生新的列表物件,而是刪除原列表的內容
    ls[1:2]=[]
    print(ls,id(ls))
    
    #清除列表中的所有元素
    ls.clear()
    print(ls)
    
    #del 列表名,將列表物件刪除
    del ls
    #print(ls) NameError: name 'ls' is not defined
    
  • 列表元素的修改操作

    #一次修改一個值
    ls=[1,2,3,4,5]
    ls[2]=100
    print(ls)
    #指定切片賦予一個新的值
    ls[1:4]=[1000,2000,3000]
    print(ls)