特别注意

list定义用的是[],tuple定义用的是(),从定义用的括号区分

1、list

list为有序的元素集合,从0开始索引

>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']
>>> classmates[0]
'Michael'

使用len()函数可以获得list

>>> len(classmates)
3

可以从最后一个开始索引,最后一个是-1

>>> classmates[-1]
'Tracy'
>>> classmates[-3]
'Michael'

使用.append()追加元素到list末尾

>>> classmates.append('Adam')
>>> classmates
['Michael', 'Bob', 'Tracy', 'Adam']

使用.insert()`把元素插入到指定位置

>>> classmates.insert(1, 'Jack')
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']

使用pop()删除,不加参数即为删除最后一个,也可以删除指定索引位置的元素

>>> classmates.pop()#删除最后一个元素
'Adam'
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy']
>>> classmates.pop(1)#删除索引为1的元素
'Jack'
>>> classmates
['Michael', 'Bob', 'Tracy']

替换list的元素可以对指定索引位置赋值

>>> classmates[1] = 'Sarah'
>>> classmates
['Michael', 'Sarah', 'Tracy']

特别注明,list里的元素可以是不同的数据类型

>>> L = ['Apple', 123, True]

list里也可以有另一个list

>>> s = ['python', 'java', ['asp', 'php'], 'scheme']#['asp', 'php']也是一个list
>>> len(s)
4
>>> p = ['asp', 'php']
>>> s = ['python', 'java', p, 'scheme']

要拿到php可以写p[1],也可以写s[2][2],此时s可以看做一个二维数组 list也可以为空,长度为0

>>> L = []
>>> len(L)
0

2、tuple

tuple也是有序的元素集合,但是一旦初始化后就无法修改,不能增减也不能改变,可以利用tuple不可变的原理,用tuple代替list,使代码更安全

>>> classmates = ('Michael', 'Bob', 'Tracy')

tuple也可以为空

>>> t = ()
>>> t
()

但是要特别注意的是,如果tuple只有一个元素的时候,必须在元素后加,才能生成tuple,因为()既有运算小括号的意思,也有tuple的意思,而Python中默认按预算的小括号进行计算

>>> t = (1,)
>>> t
(1,)#此处生成的是一个tuple
>>> t = (1)
>>> t
(1)#是一个运算使t=1

可以用tuple里嵌套list的方法使tuple可变

>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])

[]中的两个元素为list的元素,所以可变,并不影响tuple的不可变性