本文是学习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)>>> s2 = [4, "everyone", 5.6, False, 'Hi'] #list序列>>> print (s2, type(s2))[4, 'everyone', 5.6, False, 'Hi'] >>> 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') >>> s4 = [s1, 'Phone', "tea"] #含有多个序列的list序列>>> print (s4, type(s4))[(1, 2.3, 'love me', True, 34), 'Phone', 'tea'] >>> s1[0] = 2 #tuple序列单个元素不可以修改,但是整体可以赋值Traceback (most recent call last): File " ", line 1, in s1[0] = 2TypeError: '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 " ", line 1, in str[1] = 'o'TypeError: 'str' object does not support item assignment>>> print (str[1])e>>> print (type(str))
>>> s1 = (2, 3) #整体可以修改>>> print (s1)(2, 3)>>> str = '0123' #整体可以修改>>> print (str)0123>>>