python中的字典和set集合

python内置字典(dict)

在其他语言中这个字典结构也被成为map集合,使用键值的方式存储,具有极快的查询速度.
下面就来定义一个dict

d = {'bob':95,'peter':55}
d['bob']

这就是一个简单的dict结构,在使用list的时候,list越大越长,使用起来的速度越慢,dict使用的索引不会因为数据量变大而变慢.

在dict中存取元素

我们取元素依靠索引可以很方便的取得dict中的元素,存的时候只需要给索引赋值即可,而且多次赋值会出现覆盖的情况.
我们根据索引取元素有时,如果不存在该索引会报错,我们使用in来确定dict中是否包含该索引的元素.而且还可以使用get()方法,如果没有key,那么就会返回none.注意返回空值,不会显示任何东西.

在dict中删除一个元素

我们同样使用pop(key)来删除一个元素

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

list和dict的区别


  1. dict查询和插入速度都是极快的,不会因为key的增加而变慢
  2. dict需要大量内存,内存浪费多

dict是用内存来换取时间的一种方式.
同样需要牢记的dict的key是一个不可变对象
在python中字符串和整数都是不可变的,可以放心使用来当做key,由于list是可变的,不能当key

set集合

set和dict有些类似,也是一组key的集合,但是不存储value.由于key不能重复,索引set中没有重复的元素

创建一个set集合

s =set([1,2,3])
s
{1,2,3}

需要注意的是set会自动过滤重复的元素

添加元素到set

在理使用add(key)可以重复添加,但是不会有任何的效果

移除set中的元素

使用remove(key)的方法来删除一个元素

set可以看成数学上无序和无重复元素的集合,连个set几个可以做交集和并集

不可变对象

对于不可变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容,相反这些方法会创建新的对象并返回,这样,就可以保证不可变对象本身永远是不可变的.

猜你喜欢

转载自blog.csdn.net/liukai6/article/details/80215369