【python学习笔记】dict和set

dict和set


dict

dict全称dictionary 也是就字典

>>> sx = {'沙县拌面': 7, '蒸饺': 6, '鸭腿套餐': 12}
>>> sx['沙县拌面']
7

key-value储存方式

key不存在会报错,如何避免:

  1. >>> '糖醋排骨' in sx # 用in来判断key是否存在
    False
    
  2. >>> sx.get('Thomas') #使用get()方法,key不存在的话,会返回None
    >>> sx.get('Thomas', -1) #或者自己指定value
    -1
    

    ps.返回None的时候,不显示结果.

pop( )

使用pop()方法删除一个key,对应的value也会被删除

>>> d.pop('蒸饺')
6
>>> d
{'沙县拌面': 7, '鸭腿套餐': 12}

dict内部储存的顺序和key放入的顺序是没有关系的.

空间换时间

dict与list相比:

dict:

  1. 查找和插入的速度极快,不会随着key的增加而变慢;
  2. 需要占用大量的内存,内存浪费很多.

list:

  1. 查找和插入的时间随着元素的增加而增加;
  2. 占用空间小,浪费内存少.

dictkey必须是不可变对象


set

setdict类似,也是一组key的集合,但不储存value.

因为key不能重复,所以set中,没有重复的key.

创建set

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

自动过滤重复元素

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

添加元素 add(key)

>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.add(4)
>>> s
{1, 2, 3, 4}  #重复添加,并不会有效果

删除元素 remove(key)

>>> s.remove(4)
>>> s
{1, 2, 3}

set可以看成数学意义上的集合(无序,无重复元素),所以两个set可以做交集,并集操作:

>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}

不可变对象和可变对象理解:

可变:

>>> a = ['c', 'b', 'a']
>>> a.sort() #对a进行排序
>>> a
['a', 'b', 'c']

不可变:

>>> a = 'abc'
>>> a.replace('a', 'A')
'Abc'
>>> a #a并没有被改变
'abc'
发布了18 篇原创文章 · 获赞 6 · 访问量 1859

猜你喜欢

转载自blog.csdn.net/qq_43479203/article/details/105499453