美文网首页
[python基础]-09 使用字典dict和集合set

[python基础]-09 使用字典dict和集合set

作者: 一点想法 | 来源:发表于2019-07-17 11:47 被阅读0次

    1.字典 dict

    字典dict也是属于一种Python的数据类型,在其他语言中称为map,具有极快的查找速度,因为数据的存储是通过key:value键值对的形式进行存储

    2.列表list的缺点

    当我们想要存储具有映射关系的数据时,我们需要存储到两个列表中

    names = ['Michael', 'Bob', 'Tracy']
    scores = [95, 75, 85]
    1.给定一个名字要查找对应的成绩使用list存储,
    2.需要先在names列表中找到对应的名字后,
    3.再去scores列表中查找到对应成绩,list越长,耗时越长,因为列表是按照索引来查找数据
    

    3.使用dict存储映射关系的数据

    • 3.1 字典定义

    1.使用{}符号来定义字典
    2.键和值之间用冒号:分隔,而键值对之间用逗号,分隔

    dict = {'Michael':95,'Bob':75,'Tracy':85}
    
    • 3.2 访问字典中值

    获取与键相关的值,可依次指定字典名和放在括号内的键

    dict = {'Michael':95,'Bob':75,'Tracy':85}
    >>> dict['Michael']  #通过字典名和key值来访问关联的值
    95
    
    • 3.3 dict查找快速的原理

    因为dict是通过key和value键值对进行存储,如果我们想要定位一组数据,即定位到对应的key值即可,相比列表需要从索引0开始搜索更加快速

    • 3.4 判断key值是否存在
    1. 使用in
    >>> l1={'age1':33,'age2':45,'age3':67}
    >>> 'age3' in l1  
    True        #key存在l1字典
    >>> 'age4' in l1
    False      #age4不存在字典l1中
    
    1. 使用get方法
      1.如果key值存在,返回对应的value
      2.如果key值不存在,默认返回None,交互式中不会输出,可以使用print打印出来
      3.也可以自己指定打印的错误信息,key值不存在时输出,这里的wrong就是自己定义的错误输出
    >>> l1.get('age1')
    33
    >>> l1.get('age4')
    >>> l1.get('age5','wrong')
    'wrong'
    
    • 3.5 删除字典元素

    1.使用pop函数,传入对应key值,会将key-value一起删除

    >>> l1={'age1':33,'age2':45,'age3':67}
    >>> l1.pop('age1')
    33
    >>> l1
    {'age2': 45, 'age3': 67}
    
    • 3.6 添加键-值对

    1.字典是动态的结构,可随时在其中添加键-值对
    2.要添加键-值对,可依次指定字典名、方括号括起来的key值及关联的value值

    >>> scores = {'Alen':76,'Tom':90,'Bille':98}
    >>> scores['Richal']=100
    >>> scores
    {'Alen': 76, 'Tom': 90, 'Bille': 98, 'Richal': 100}
    
    • 3.6 dict数据特点

    1.字典内部的数据存储是无序的,即两次打印输出同一个字典,排序可能不同
    2.key值不可重复,具有唯一性
    3.每一个key只能对应一个value
    4.重复对同一个key赋值,只会存储最后依次赋值的内容
    5.key的数据类型必须是不可变的,所以字符串、整数是不可变,可以作为key,list是可变对象,不可作为key值

    4.集合 set

    4.1 set定义

    1.set和dict类似,同样存储一组不重复的key,但不同的是,set不存储value
    2.创建一个set,需要提供一个列表作为输入集合
    3.集合也是无序的

    >>> s = set([1,2,3])
    >>> s
    {1, 2, 3}
    
    4.2 重复的元素,set会自动过滤
    >>> t=set([1,2,2,3,4,3])
    >>> t
    {1, 2, 3, 4}
    
    4.3 给集合添加、删除元素
    • 尾部添加元素 add
    >>> t.add(5)
    >>> t
    {1, 2, 3, 4, 5}
    
    • 移除元素 remove
    >>> t
    {1, 2, 3, 4, 5}
    >>> t.remove(2)
    >>> t
    {1, 3, 4, 5}
    
    4.4 集合可做交集 并集运算
    >>> s1=set([1,2,3])
    >>> s2=set([2,3,4])
    >>> s1&s2        #并集使用&  表示s1和s2中都包含的元素
    {2, 3}
    >>> s1|s2         #交集使用|  表示s1和s2中所有不重复的元素
    {1, 2, 3, 4}
    

    相关文章

      网友评论

          本文标题:[python基础]-09 使用字典dict和集合set

          本文链接:https://www.haomeiwen.com/subject/kpztlctx.html