list
索引
- 用索引来访问list中每一个位置的元素,记得索引是从0开始的,要确保索引不要越界,记得最后一个元素的索引是len(classmates) - 1
- list名[-1]表示倒数第一个,-2,-3以此类推
可变
- 追加元素到末尾:list名.append(‘要追加的元素’),即append()
- 元素插入到指定的位置,比如索引号为1的位置:list名.insert(1, ‘元素’),即insert()
- 删除末尾元素:list名.pop();删除索引位置为i的元素:list名.pop(i)
- 替换元素:直接赋值:list名[i]=要替换的元素
- 元素也可为list,索引时类似二维数组
- 空list:list名[],长度为0
tuple
tuple和list非常类似,但是tuple一旦初始化就不能修改。tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来
不可变
定义一个只有1个元素的tuple:t = (1,),会加一个,
“可变”
当tuple里面的元素有list时,list中的元素可变,但是指向不变
list和tuple是Python内置的有序集合,一个可变,一个不可变。根据需要来选择使用它们。
dict
使用键-值(key-value)存储,查找速度极快
eg:d = {‘张三’: 95, ‘李四’: 75, ‘王五’: 85} 中张三为key,95为其value
dict的key必须是不可变对象如str,int等都不可变,但是list是可变的,不可为key
避免key不存在的错误
- ‘赵大’ in d 即用in
- d.get(‘赵大’) 当不存在时返回None(没有反应),或者自己的赋值
- 删除一个key,用pop(key)方法
注意,dict内部存放的顺序和key放入的顺序没有关系
与list异同
dict:查找和插入的速度极快,不会随着key的增加而变慢;但是需要占用大量的内存,内存浪费多。
list:查找和插入的时间随着元素的增加而增加;但是占用空间小,浪费内存很少。
set
是一组key的集合,但不存储value。由于key不能重复,所以在set中,没有重复的key。
要创建一个set,需要提供一个list作为输入集合
操作
- 添加元素add(key)(可重复但不显示)
- 删除元素remove(key)
- set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作即&,|等。
与dict异同
set和dict的唯一区别仅在于没有存储对应的value,但是set的原理和dict一样,所以同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。