sequence 序列
序列引用
通过s[<int>]实现, int为下标。注意下标是从0开始。
1 >>> s1 = (2, 1.3, 'love', 5.6, 9, 12, False) #s1为tuple 2 >>> s2 = [True, 5, 'smile'] #s2为list 3 >>> print (s1,type(s1)) 4 ((2, 1.3, 'love', 5.6, 9, 12, False), <type 'tuple'>) #注意输出的s1也带有() 5 >>> print (s2,type(s2)) 6 ([True, 5, 'smile'], <type 'list'>) #s2输出带有[] 7 >>> print (s1[0]) #引用为[]固定格式 8 2 9 >>> print(s1[2]) 10 love 11 >>> s3 = [1,[3,4,5]] 12 >>> print (s3[1]) #list的引用 13 [3, 4, 5]
llist-表变更
1 >>> s2 = [True, 5, 'smile'] 2 >>> s2[2]=78 #list可变更 3 >>> print (s2) 4 [True, 5, 78] 5 >>> s1 = (2, 1.3, 'love') 6 >>> s1[2]=78 #tuple不可变更 7 8 Traceback (most recent call last): 9 File "<pyshell#70>", line 1, in <module> 10 s1[2]=78 11 TypeError: 'tuple' object does not support item assignment
引用的延伸
基本样式[下限:上限:步长],包含下限但不包含上限。
1 >>> s1 = (2, 1.3, 'love', 5.6, 9, 12, False) 2 >>> print (s1[2]) 3 love 4 >>> print (s1[:1]) #从下标0开始取数,不包含s1[1],即1.3 5 (2,) 6 >>> print (s1[1:]) #从下标1开始取数,直至末尾 7 (1.3, 'love', 5.6, 9, 12, False) 8 >>> print (s1[1:5]) #包含下标1,不包含下标5,即12 9 (1.3, 'love', 5.6, 9) 10 >>> print (s1[1:5:2]) #增加了步长 11 (1.3, 5.6) 12 >>> print (s1[1:5:-1]) #-1是个特殊的取法,下限>上限 13 () 14 >>> print (s1[5:1:-1]) #不包含上限,与s1[1:5]结果不同 15 (12, 9, 5.6, 'love') 16 >>> print(s1[-1]) #-1即为末尾,末尾非0开始 17 False 18 >>> print(s1[-3]) #-3为反向下标3 19 9 20 >>> print (s1[:-1]) 21 (2, 1.3, 'love', 5.6, 9, 12) #取不到末尾 22 >>> print (s1[0:-1]) 23 (2, 1.3, 'love', 5.6, 9, 12)
小结:
1.s1[1:]未定义上限,可以取到末尾。
2.步长为-1时为反向取数,且下限>上限,否则输出结果为()。
3.取序列最后一个元素的写法有两种,一种为s1[最后一个元素下标];另一种为s1[-1]。
4.反向取数时,s1[-3]即为反向第三个元素。
取全部的写法。
1 >>> print (s1[:]) 2 (2, 1.3, 'love', 5.6, 9, 12, False) 3 >>> print (s1[0:]) 4 (2, 1.3, 'love', 5.6, 9, 12, False) 5 >>> print (s1) 6 (2, 1.3, 'love', 5.6, 9, 12, False)
字符串为元组
是一种特殊的tuple-元组。
1 >>> str = 'abcdef' 2 >>> print(str[2:4]) #引用的写法 3 cd