list、tuple、dict与set

list

索引

  1. 用索引来访问list中每一个位置的元素,记得索引是从0开始的,要确保索引不要越界,记得最后一个元素的索引是len(classmates) - 1
  2. list名[-1]表示倒数第一个,-2,-3以此类推

可变

  1. 追加元素到末尾:list名.append(‘要追加的元素’),即append()
  2. 元素插入到指定的位置,比如索引号为1的位置:list名.insert(1, ‘元素’),即insert()
  3. 删除末尾元素:list名.pop();删除索引位置为i的元素:list名.pop(i)
  4. 替换元素:直接赋值:list名[i]=要替换的元素
  5. 元素也可为list,索引时类似二维数组
  6. 空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不存在的错误

  1. ‘赵大’ in d 即用in
  2. d.get(‘赵大’) 当不存在时返回None(没有反应),或者自己的赋值
  3. 删除一个key,用pop(key)方法

注意,dict内部存放的顺序和key放入的顺序没有关系

与list异同

dict:查找和插入的速度极快,不会随着key的增加而变慢;但是需要占用大量的内存,内存浪费多。
list:查找和插入的时间随着元素的增加而增加;但是占用空间小,浪费内存很少。

set

是一组key的集合,但不存储value。由于key不能重复,所以在set中,没有重复的key。
要创建一个set,需要提供一个list作为输入集合

操作

  1. 添加元素add(key)(可重复但不显示)
  2. 删除元素remove(key)
  3. set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作即&,|等。

与dict异同

set和dict的唯一区别仅在于没有存储对应的value,但是set的原理和dict一样,所以同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值