Python序列之list和tuple常用方法以及注意事項

字號:


    sequence 序列
    sequence(序列)是一組有順序的對象的集合。序列可以包含一個或多個元素,也可以沒有任何元素。
    我們之前所說的基本數(shù)據(jù)類型,都可以作為序列的對象。對象還可以是另一個序列。序列有兩種:list (表) 和 tuple(元組) 。
    list和tuple的主要區(qū)別在于,一旦建立,tuple的各個元素不可再變更,而list的各個元素可以再變更。
    List
    獲得list元素的個數(shù):
    代碼如下:
    >>> lst=['更新慢','python',5.44,False]
    >>> len(lst)
    4
    引用訪問時索引是從0開始,注意不要越界:
    代碼如下:
    >>> lst[0]
    '更新慢'
    >>> lst[1]
    'python'
    >>> lst[2]
    5.44
    >>> lst[3]
    False
    >>> lst[4]
    Traceback (most recent call last):
    File "<pyshell#30>", line 1, in <module>
    lst[4]
    IndexError: list index out of range
    用-1做索引,直接獲取最后一個元素:
    代碼如下:
    >>> lst[-1]
    False
    >>> lst[-2]
    5.44
    >>> lst[-3]
    'python'
    >>> lst[-4]
    '更新慢'
    >>> lst[-5]
    Traceback (most recent call last):
    File "<pyshell#35>", line 1, in <module>
    lst[-5]
    IndexError: list index out of range
    因為list是一個可變的有序表,所以,可以往list末尾追加元素:
    代碼如下:
    >>> lst.append('加我一個')
    >>> lst
    ['更新慢', 'python', 5.44, False, '加我一個']
    一次追加多個元素:
    代碼如下:
    >>> lst.extend(['A','B','C'])
    >>> lst
    ['更新慢', 'python', 5.44, False, '加我一個', 'A', 'B', 'C']
    要刪除list末尾的元素,用pop()方法:
    代碼如下:
    >>> lst.pop()
    'C'
    >>> lst
    ['更新慢', 'python', 5.44, False, '加我一個', 'A', 'B']
    刪除指定位置的元素,用pop(i)方法,其中i是索引位置:
    代碼如下:
    >>> lst.pop(0)
    '更新慢'
    >>> lst
    ['python', 5.44, False, '加我一個', 'A']
    list元素替換,可以直接賦值給對應(yīng)的索引位置:
    代碼如下:
    >>> lst[-1]='100'
    >>> lst
    ['python', 5.44, False, '加我一個', '100']
    list元素也可以是另一個list,插入的那個list只算一個元素:
    代碼如下:
    >>> lst.append(lst1)
    >>> lst
    ['python', 5.44, False, '加我一個', '100', ['666', 'QWER']]
    >>> len(lst)
    6
    Tuple
    Tuple一旦初始化就不能修改。字符串是一種特殊的元素,因此可以執(zhí)行元組的相關(guān)操作。
    代碼如下:
    >>> str='該睡覺了,晚安!'
    >>> print (str[:7])
    該睡覺了,晚安
    不可變的tuple意義就在于因為不可變,所以代碼更安全。如果可能,能用tuple就盡量用tuple。
    代碼如下:
    >>> tuple=('1','2','3')
    >>> tuple[0]=6
    Traceback (most recent call last):
    File "<pyshell#62>", line 1, in <module>
    tuple[0]=6
    TypeError: 'tuple' object does not support item assignment
    定義一個空tuple:
    代碼如下:
    >>> tuple1=()
    >>> tuple1
    ()
    注意,要定義一個只有1個元素的tuple:
    代碼如下:
    >>> tuple2=(666,)
    >>> tuple2
    (666,) #正確的
    >>> tuple3=(666)
    >>> tuple3
    666 #錯誤的,只定義了666這個數(shù)
    注意:Tuple所謂的“不變”是說,tuple的每個元素,指向永遠不變。
    代碼如下:
    >>> l=['CCTV-5','HI']
    >>> tuple4=('UFO','HACK',l)
    >>> tuple4
    ('UFO', 'HACK', ['CCTV-5', 'HI'])
    >>> l[1]='我先變一下'
    >>> tuple4
    ('UFO', 'HACK', ['CCTV-5', '我先變一下'])
    所以盡量避免這種套用。
    當日小結(jié)
    掌握List和Tuple的常用方法以及注意事項。