3.Python基礎 序列sequence
阿新 • • 發佈:2019-01-26
本文是學習Vamei寫的部落格寫的,權當自己的筆記和複習一遍,看Vamei前輩寫的估計會更清楚一些,他的部落格地址:
sequece翻譯就叫序列,像陣列一樣可以儲存多個元素同樣可以為空,但是不同的是它可以儲存不同型別的元素,序列中也可以包含一到多個序列,序列中也可以序列和單個元素共存。像cocos2dx中有動作序列也是sequece可以儲存多個不同的動作。
序列分為兩種tuple(可以譯做元組)和list(表),tutle取出的單個元素是不能修改的,而list是能修改的。請看下面的程式:
>>> s1 = (1, 2.3, "love me", True, 34) #tuple序列 >>> print (s1, type(s1)) (1, 2.3, 'love me', True, 34) <class 'tuple'> >>> s2 = [4, "everyone", 5.6, False, 'Hi'] #list序列 >>> print (s2, type(s2)) [4, 'everyone', 5.6, False, 'Hi'] <class 'list'> >>> s3 = (s1, s2, 'Computer', 'cocos') #含有多個序列的tuple序列 >>> print (s3, type(s3)) ((1, 2.3, 'love me', True, 34), [4, 'everyone', 5.6, False, 'Hi'], 'Computer', 'cocos') <class 'tuple'> >>> s4 = [s1, 'Phone', "tea"] #含有多個序列的list序列 >>> print (s4, type(s4)) [(1, 2.3, 'love me', True, 34), 'Phone', 'tea'] <class 'list'> >>> s1[0] = 2 #tuple序列單個元素不可以修改,但是整體可以賦值 Traceback (most recent call last): File "<pyshell#59>", line 1, in <module> s1[0] = 2 TypeError: 'tuple' object does not support item assignment >>> s2[1] = 5 #list序列單個元素可以修改 >>> print (s2) [4, 5, 5.6, False, 'Hi'] >>> print (s1[2][1]) #序列就像陣列一樣可以通過下標訪問,而且字串也像序列一樣可以通過下標訪問 o >>> print (s3[0][2][2]) v >>> print (s1[:2]) #引用方法,取0-1的值,不包含下標2的值 (1, 2.3) >>> print (s1[1:4]) #取1-3的值,不包含下標4的值 (2.3, 'love me', True) >>> print (s1[0:]) #取序列中所有的值 (1, 2.3, 'love me', True, 34) >>> print (s1[2:0:-1]) #取1-2的值 ('love me', 2.3) >>> print (s1[-1]) #取倒數第一個的值 34 >>> print (s1[0:-2]) #相當於-2為下標倒數第二個的小標 (1, 2.3, 'love me') >>> print (s1[0:-1]) (1, 2.3, 'love me', True) >>> print (s1[0:0]) () >>> str = "hello python" #陣列也相當於一個序列,str是一個關鍵字也能當變數名使用,float也能,就和c等語言有區別了 >>> print (str) hello python >>> str[1] = 'o' #而且str像一個tuple序列,單個元素不能修改,也像c語言中字串字面值不能修改 Traceback (most recent call last): File "<pyshell#78>", line 1, in <module> str[1] = 'o' TypeError: 'str' object does not support item assignment >>> print (str[1]) e >>> print (type(str)) <class 'str'>
>>> s1 = (2, 3) #整體可以修改
>>> print (s1)
(2, 3)
>>> str = '0123' #整體可以修改
>>> print (str)
0123
>>>