1. 程式人生 > >list+tuple的基礎及操作

list+tuple的基礎及操作

value eve 範圍 init type 調用 錯誤 字符串 沒有

列表(list)基礎及基礎操作+tuple的小範圍知識
list
一個排列有序的線性結構隊列,由若幹個元素組成(元素可以是任意對象)
列表是可變類型
list() :new empty(空) list
list(iterable):new list initialized from‘s items iterable:可叠代對象 例:lt = list(range(10))
列表不能一開始就定義其大小

索引,也叫下標
正索引:從左至右,從0開始,為列表的每一個元素編號
負索引:從右至左,從-1開始
左邊為頭部,稱為下界;右邊為尾部:稱為上屆
正負索引不能越界,否則會發生IndexErros異常報錯

通過索引訪問列表:

list [index] :index 就是索引,使用中括號訪問
index(value,[start,[stop]]):
通過value值,來查找列表元素;[start,[stop]]:可以確定查找元素的區間
匹配第一個就立即返回索引;匹配不到,拋出ValueError 異常
count(value)
返回列表中value的次數
時間復雜度
index和count方法都是O(n)
效率隨著列表元素規模的增大而下降
len( list )
可以返回列表中元素的個數 時間復雜度為:O(1)

修改元素
通過索引訪問修改
list[ index ] = value 例:lt [6] = 666

列表增加、插入元素

append(object)>>>None (返回None,就地直接修改) 例子 li.append(a)
從列表的尾部追加元素,返回None ,就地修改
時間復雜度:O(1)
insert(index,object)>>>None 返回None,就地修改
例子:u = [0,1,2,3] u.insert(-1,5) print(u) result(結果):[0,1,2,5,3]
在指定的索引位置插入元素;時間復雜度:O(n)
當索引超越上下界時 上界 :尾部追加 下界:頭部追加
extend(iterable)>>>None
將可叠代對象的元素追加進來;返回None 就地修改

  • list 例:list1 + list2 返回一個新的列表
    連接操作,將兩個列表連接起來,產生一個新的列表,原列表不發生變化
    本質上是調用add()方法
  • list list2 = [1,2,3]*3 result [1,2,3,1,2,3,1,2,3]
    重復操作,將本列表的元素重復n次,返回一個新的列表
    列表刪除元素
    remove(value)>>>None 返回None 就地修改
    從左至右查找 第一個能匹配的value值,移除該元素;時間復雜度O(n)
    pop([index])>>> item
    不指定索引index時,從列表的尾部彈出一個元素
    指定索引index時,就從索引位置彈出一個元素,索引超界時拋出IndexError錯誤
    時間復雜度O(n)
    clear()>>>Neno
    清除列表所有元素,剩下一個空列表
    reverse()>>>None 返回None 就地修改 例:list2.reverse()
    反轉列表的元素
    sort(key = None,reverse = False)>>>None 返回None,就地修改
    對列表元素進行排序,默認為升序
    reverse為True時 反轉 ,降序
    key 一個函數,指定key如何排序 list2.sort(key = funtionname) 當排序時有多個類型時,可用 key = str 將元素類型轉變為str 然後進行排序 排序時會按字符串格式轉化,轉換拍戲 。排完後元素類型並沒有改變
    in 遍歷 某一元素 是否在某一個列表中 例:3 in[ 1,5,9,7,3,4] True 當元素是【list】時 取不到其中的元素 返回 False 同時是按內容匹配。當內容不一樣時False 例:[a,10]/c in [ [10,a],[100,50],[c ] ] 因為列表有順序
    is 判斷 某一元素 是不是

tuple元祖:
一個有序的元素集合
元祖是不可變類型

tuple() >>> empty tuple
tuple(iterable)>>>tuple initialized from iterable‘s items

元祖元素的訪問
支持索引
正索引:從左至右,從0開始,為列表的每個元素編號
負索引:從右至左,從-1開始
正負索引不可以越界,否則發生EndexError 異常
元祖通過索引訪問
tuple[ index ]
index(value,[start,[stop]])
通過value,從制定區間查找淚表內的元素是否匹配
匹配到第一這個值就立即返回索引,不再往下繼續遍歷
匹配不到,拋出ValueError異常
count(value)返回列表中匹配的value次數
時間復雜度
index和count方法都是O(n)
隨著列表數據規模的增大而效率下降
len(tuple)返回元素的個數
namedtuple(typename,field_names,verbose=False,rename=False)
命名元祖,返回一個元祖的子類,並定義了字段
filef_names 可以是空白符或者逗號分隔的字段的字符串,可以是字段的列表

list+tuple的基礎及操作