list(列表)和tuple(元组)都是Python内置的数据类型,他们都是有序的集合。
list是可变的,可以随便的增加和删除其中的元素;而tuple是不可变,一旦初始化了之后就不能进行修改了。
下面是list的表示,变量名 = [变量1,变量2......]
>>> s1 = ['test', 10, 2.13, True] >>> print(s1, type(s1)) (['test', 10, 2.13, True], <type 'list'>)
下面是tuple的表示,变量名 = (变量1,变量2......)
>>> s2 = ('Hello', 13, False) >>> print(s2, type(s2)) (('Hello', 13, False), <type 'tuple'>)
list和tuple都可以通过索引来访问他们的每一个元素,索引是从0开始的,当索引超出了范围时,Python会报一个IndexError错误,所以,要确保索引不要越界,记得最后一个元素的索引是len(s1) - 1
。也可以用-1作为索引来等到最后一个元素。
>>> s1[0] 'test' >>> s2[-1] False >>> s1[len(s1)-1] True >>> s1[2] 2.13
由于list是可变的,所以可以对list进行操作
s1.append('Test') #往list中追加元素‘Test’到末尾 s1.insert(2, 'Test11') #往list中追加元素‘Test11’到索引是2的位置 s1.pop() #删除list中的末尾的元素 s1.pop(1) #要删除指定位置索引是1的元素
最后,字符串是这一种特殊的tuple。
注意:定义的不是tuple,是1
这个数!这是因为括号()
既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1
。
所以,只有1个元素的tuple定义时必须加一个逗号,
,来消除歧义:
>>> t = (1,) >>> t (1,)
Python在显示只有1个元素的tuple时,也会加一个逗号,
,以免你误解成数学计算意义上的括号。