数组list和tuple,都是python内置的有序集合
一、list
在python中数组用list表示,数组中的元素类型可以不一致,classmates=['li','yong','fen']作为参照得到的结果
1、数组长度
len(classmates) //3
len([]) //0
2、索引获取数组中某个元素,当超出索引范围,报IndexError错误。还可以反向取数组中的元素
classmates[2] //'fen'
classmates[-1] //'fen'
classmates[-2] //'yong'
3、末尾添加元素,一次只能添加一个
classmates.append('lili') //['li','yong','fen','lili']
4、指定位置添加元素
classmates.insert(1,'jack') //['li','jack','yong','fen']
5、删除末尾一个元素,也可以删除指定位置上的元素,返回删除的元素
classmates.pop('lili') //['li','yong']
classmates.pop(1) //['li','fen']
删除指定元素
del classmates(1)//数组变为['li','fen']
6、替换某元素
classmates[1] = 'sasa' //['li','sasa','fen']
二、tuple元组
tuple一旦初始化就不能修改,只能读取,这样更安全,使用()表示
classmates('li','yong','fen')
1、如果只有一个元素 classmates(1,)
避免与tuple和运算符中的()搞混
2、t=('li','yong',['a','b'])
t[2][0] = 'A' //('li','yong',['A','b'])
其中说的不变与这里的变,不变的是tuple,变的是list。
表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a'
,就不能改成指向'b'
,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!理解了“指向不变”后,要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变。