一:list
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素
(1)创建一个list
>>> classmates = ["Michael","Bob","Tracy"]
>>> classmates
['Michael', 'Bob', 'Tracy']
(2)用len()函数可以获得list元素的个数
>>> len(classmates)
3
(3)用索引来访问list中每一个位置的元素,索引是从0开始的
>>> classmates[0]
'Michael'
>>> classmates[1]
'Bob'
(4)获取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素
>>> classmates[-1]
'Tracy'
//以此类推,可以获取倒数第2个、倒数第3个
>>> classmates[-2]
'Bob'
>>> classmates[-3]
'Michael'
(5)往list中追加元素到末尾,用append()
>>> classmates.append("Adam")
>>> classmates
['Michael', 'Bob', 'Tracy', 'Adam']
(6)把元素插入到指定的位置,比如索引号为1的位置:
>>> classmates.insert(1,"Jack")
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']
(7)要删除list末尾的元素,用pop()方法
>>> classmates.pop()
'Adam'
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy']
(8)要删除指定位置的元素,用pop(i)方法,其中i是索引位置
>>> classmates.pop(1)
'Jack'
>>> classmates
['Michael', 'Bob', 'Tracy']
(9)要把某个元素替换成别的元素,可以直接赋值给对应的索引位置
>>> classmates[1] = "Sarah"
>>> classmates
['Michael', 'Sarah', 'Tracy']
(10)list里面的元素的数据类型也可以不同
L = ["Apple",124,True]
(11)list元素也可以是另一个list
>>> p = ['asp', 'php']
>>> s = ['python', 'java', p, 'scheme']
>>> s
['python', 'java', ['asp', 'php'], 'scheme']
//要拿到'php'可以写p[1]或者s[2][1]
//因此s可以看成是一个二维数组,类似的还有三维、四维……数组,不过很少用到
二:tuple
另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字
(1)创建一个元组
>>> classmates = ("Michael","Bob","Tracy")
>>> classmates
('Michael', 'Bob', 'Tracy')
(2)classmates这个tuple不能变了,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,你可以正常地使用classmates[0],classmates[-1],但不能赋值成另外的元素
(3)不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple
(4)只有1个元素的tuple定义时必须加一个逗号,,来消除歧义
这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义
>>> t = (1,)
>>> t
(1,)
(5)当tuple的元组的元素是一个list时,list里面的元素是可变的,因为tuple指向没有变化
>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])