Python數(shù)據(jù)類型-列表

列表的基本特點

  • 大小可變,內容可修改
  • 是一種順序結構,可索引可迭代
  • 可以由多種元素組合構成(字符串、整數(shù)、浮點數(shù)、可迭代對象)

列表的初始化

  • []:構建一個空的列表
  • list(): 構建一個空的列表
  • [ele1, ele2, ele3 ... elen]:構建一個包含如上元素的列表
  • list(iterable):使用一個可迭代對象來構建新的列表,列表元素是可迭代對象的元素
    • [iterable]:構建的也時一個列表,但是元素不是iterable中的元素,是iterable的返回類型

列表索引、元素修改、長度查詢

  • 列表的索引
    • list[index] :使用[]作為索引符號,index作為索引標記
    • index:有正負索引兩種形式,正索引從0開始,負索引從-1開始
    • 索引越界:會拋出IndexError異常
  • 元素修改
    • list[index] = value :修改索引位置處的元素值
  • 列表長度查詢
    • len(list) :查詢list的元素個數(shù),時間復雜度為0(1)

列表常用方法

  • 列表元素查詢(不推薦使用
    • list.index(value [,start [,end]]):在列表中查詢value第一次出現(xiàn)的位置,可以指定起止索引值 [start, end)
    • 起止索引默認從左到右
    • 匹配不到value值,會拋出ValueError異常
    • 時間復雜度:O(n)
  • 列表元素計數(shù) ( 不推薦使用)
    • list.count(value):查詢列表中value出現(xiàn)的總次數(shù)
    • 時間復雜度:O(n)
  • 列表增加元素
    • list.append(object):在列表的尾部添加元素 object (最常用
      • 返回值為None,表明是在當前的列表中直接修改,不產(chǎn)生新的列表
      • 時間復雜度: O(1)
    • list.insert(index, object):在指定索引位置添加元素 object
      • 返回值為None,就地修改不產(chǎn)生新列表
      • 時間復雜度:O(n)
      • 指定索引如果有越界行為,會被強行拉到列表頭部和尾部添加元素
    • list.extend(iterable):列表擴展,將可迭代對象中的元素依次添加到list中
      • 返回值為None,對list直接修改不產(chǎn)生新的列表
    • list1 + list2:表示將兩個list連接起來
      • 產(chǎn)生新的列表,原列表不發(fā)生變化
    • list * num:重復操作
      • 將列表中的元素重復num次,返回一個新的列表
      • 注意非引用對象和引用對象的區(qū)別(非引用對象直接復制元素值,引用對象復制內存地址)
  • 列表刪除元素
    • list.remove(value):刪除從左到右匹配到的第一個值為value的元素
      • 返回值為None,在原列表上直接修改
      • 時間復雜度:O(n)
    • list.pop([index]):彈出列表中索引位置index處的元素 (最常用
      • 返回值為item ,原列表中有修改
      • 如果不指定索引值,默認彈出列表中最后一個元素值(時間復雜度為O(1))
    • list.clear():清除列表中的元素
      • 返回一個空列表

列表其他方法

  • 列表元素翻轉
    • list.reverse():將列表元素翻轉
      • 返回None, 就地修改列表
  • 列表排序
    • list.sort(key=none, reverse=False):對列表元素進行排序
      • 返回None,就地修改列表
      • 默認為升序,reverse參數(shù)設置為True,將列表翻轉排序
      • key=function:將列表中的元素使用key指定的函數(shù)轉換成要求的類型

列表復制

  • 列表淺復制

    • lst1 = lst2: list1 和 list2 指向同一塊內存地址,一個修改兩個都變化
    • copy():非引用類型變量復制元素值,引用類型變量復制內存地址
      • 修改非引用類型變量時,彼此不會影響
      • 修改引用類型數(shù)值會使兩個列表中的元素值都修改
    • 列表判定:== 判定兩個列表中元素值是否完全一致,會將引用類型中的元素值拿出對比
  • 列表深復制

    • deepcopy():來自copy模塊中,會解析引用類型,兩個列表之間不在有相互聯(lián)系
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容