list
Python的list与数组类似,是一种可变的有序的集合。先看如何定义一个list,用 括起来所有的元素:
用索引访问每一个位置的元素,索引从0开始的。越界时报 的错误。索引用负数可以从后往前获取,如a[-1]得到的是最后一个元素。
用 函数可以获得list元素的个数。
用 往list追加元素到末尾。
用 将元素插入到指定的位置。
用 方法删除list末尾的元素,如果传入索引,可以删除指定位置的元素。
要把某个元素替换成别的元素,可以直接赋值。list里面的元素类型可以不同,list里面的元素也可以是list。
要得到“php”,可以用 得到,这样就像一个二维数组。因此更多维的list也是可以构造的。
如果一个list中一个元素也没有,可以写成 ,就是一个空的list,它的长度为0。
tuple
tuple也是一种有序列表,但是与list不同的是,tuple一旦初始化就不能再修改。用 括起来所有的元素。
tuple一旦初始化不能修改,定义tuple时,tuple的元素必须被定义下来。空的tuple可以写成 。
但是注意,只有一个元素的tuple,如果写成:
这里的t不是tuple,而是数字1。原因在于括号的歧义,在这种情况下,()表示小括号。因此一个元素的tuple需要在元素后加逗号。
如果tuple里的元素是list或其他的类型,可以实现tuple的可变。这里的原理其实是tuple的不变指的是“指向的不变”。
dict
dict类似Java中的Map,使用键-值对存储数据,具有极快的查找速度。定义一个dict的方法如下:
与Java中的Map一样,通过 来取数据和放入数据。
一个key只能对应一个value,后面的值会把前面的值冲掉。如果key不存在,dict会报错。
使用 来判断key是否存在:
通过 方法,如果key不存在返回 ,或者自定义的值。注意返回None的时候,Python的交互环境不显示。
用 的方法删除一个键值对。
使用dict的第一要点就是key必须是不可变对象。因为需要保证hash的正确,key不可变,因此类似使用list作为key是不正确的。
set
set是一组key的集合,但是没有value,由于key不能重复,在set中,也没有重复的key。
要创建一个set,需要传入一个list作为输入集合,在set中元素没有顺序,重复元素会被自动过滤。
通过 方法添加元素,重复添加不报错,但是没有效果。通过 方法删除元素。
set是无序和无重复的集合,因此,两个set可以进行 和 的操作。
set也不能放入可变对象。
不可变对象
str是不变对象,而list是可变对象。对于不可变对象,调用自身任意方法,也不会改变对象自身的内容,这些方法会创建新的对象并返回,保证不可变对象本身是不可变的。
tuple是immutable的,所以它是可哈希的(hashable),所以它可以作为dict的key,或者保存进set中。
领取专属 10元无门槛券
私享最新 技术干货