sequence(序列)是一組有順序的對象的集合。序列可以包含一個或多個元素,也可以沒有任何元素。
我們之前所說的基本數據類型,都可以作為序列的對象。對象還可以是另一個序列。序列有兩種:list (表) 和 tuple(元組) 。
list和tuple的主要區別在于,一旦建立,tuple的各個元素不可再變更,而list的各個元素可以再變更。
獲得list元素的個數:
>>> 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元素替換,可以直接賦值給對應的索引位置:
>>> 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一旦初始化就不能修改。字符串是一種特殊的元素,因此可以執行元組的相關操作。
>>> str='該睡覺了,晚安!'>>> PRint (str[:7])該睡覺了,晚安
不可變的tuple意義就在于因為不可變,所以代碼更安全。如果可能,能用tuple就盡量用tuple。
>>> tuple=('1','2','3')>>> tuple[0]=6Traceback (most recent call last): File "<pyshell#62>", line 1, in <module> tuple[0]=6TypeError: 'tuple' object does not support item assignment
定義一個空tuple:
>>> tuple1=()>>> tuple1()
注意,要定義一個只有1個元素的tuple:
>>> tuple2=(666,)>>> tuple2(666,) #正確的>>> tuple3=(666)>>> tuple3666 #錯誤的,只定義了666這個數
注意:Tuple所謂的“不變”是說,tuple的每個元素,指向永遠不變。
>>> l=['CCTV-5','HI']>>> tuple4=('UFO','HACK',l)>>> tuple4('UFO', 'HACK', ['CCTV-5', 'HI'])>>> l[1]='我先變一下'>>> tuple4('UFO', 'HACK', ['CCTV-5', '我先變一下'])
所以盡量避免這種套用。
掌握List和Tuple的常用方法以及注意事項。
新聞熱點
疑難解答