zoukankan      html  css  js  c++  java
  • python dict字典

    day5 ~

        在python中字典的使用方法与list有一定的共性,但是比较方便的下标(索引)方式在字典中无法使用,因为字典是无序的组合,在字典中的数据都是无序排列,利用下标无法获取元素,并且在3.5之前的版本中尤为明显,而在3.6之后官方更行后,排序有了一定的优化,但也没有明确表示字典会是有序的。

      哈希的概念:在字典中有一种哈希表对应所有的键,只有键是不可变的类型才可以哈希,而可变的类型不可哈希

    哈希表是用来在字典中利用二分法判断键的位置的时候将键先去

    只有是不可变类型的数值才能哈希
    不可变的类型有:str tuple int bool (可哈希)
    可变的类型有:list dict (不可哈希)
    字典的键必须是不可变数据类型,可哈希
    字典的键值对可以是任何类型。

    1 dic = {'ss':22,'dd':33,'gg':44,'jj':66,'kk':88}
    2 print(dic)
    3 
    4 #结果:
    5     每次输出都是不一样的,没有顺序,所以无法使用索引

    #dict的增删改查!

    #增,在字典中有两种方法,一种是利用dic[' ']直接赋值,还有一种是利用dic.setdefault()直接添加:

        1.setdfault方法:

    dic = {'ss':22,'dd':33,'gg':44,'jj':66,'kk':88}
    dic.setdefault('sa','hha')
    print(dic)#结果:{'ss': 22, 'kk': 88, 'sa': 'hha', 'gg': 44, 'jj': 66, 'dd': 33}
    #在原有字典内部,添加之前判断添加的元素在字典中是否用有,无则添加,有则不变
    dic.setdefault('sa','hha')
    print(dic)#结果:{'ss': 22, 'kk': 88, 'sa': 'hha', 'gg': 44, 'jj': 66, 'dd': 33}

        2.直接添加:

    dic={'ss': 22, 'kk': 88, 'sa': 'hha', 'gg': 44, 'jj': 66, 'dd': 33}
    dic['kk'] = 'aa'
    print(dic)#结果:{'dd': 33, 'gg': 44, 'jj': 66, 'sa': 'hha', 'kk': 'aa', 'ss': 22}
    #直接添加
    ##在原有字典内部,添加之前判断添加的元素在字典中是否拥有,无则添加,有则覆盖
    dic['kk'] = 'aaaaa'
    print(dic)#结果:{'dd': 33, 'gg': 44, 'jj': 66, 'sa': 'hha', 'kk': 'aaaaa', 'ss': 22}
     

    #删

       1.在字典中删除方法有三种,1.pop删除方法,2.clear删除方法,3.del删除方法 4.popitem方法

               1.pop方法:利用key来删除,没有默认删除,无则报错。

    1 dic={'ss': 22, 'kk': 88, 'sa': 'hha', 'gg': 44, 'jj': 66, 'dd': 33}
    2 dic.pop('ss')
    3 print(dic)结果:{'jj': 66, 'dd': 33, 'gg': 44, 'kk': 88, 'sa': 'hha'}

    dic.pop()
    print(dic)结果:报错!!
    #没有默认删除,因为字典是无序的。
    dic.pop('meinv', '错了')#当不设定错误信息时,没有找到key就会报错,只有设定报错信息才会在报错的时候显示信息
    print(dic)

        2.clear方法:直接清空字典

    1 dic={'jj': 66, 'dd': 33, 'gg': 44, 'kk': 88, 'sa': 'hha'}
    2 dic.clear()
    3 print(dic)#结果:{}

        3,。del方法:删除或者利用键删除,没有找到key时就会报错

    1 dic={'jj': 66, 'dd': 33, 'gg': 44, 'kk': 88, 'sa': 'hha'}
    2 del dic['jj']
    3 print(dic)#结果{'dd': 33, 'gg': 44, 'kk': 88, 'sa': 'hha'}
    4 del dic['eeee']
    5 print(dic)#结果报错

        4.popitem方法,随机删除一个数字

    #popitem方法  随机删除
    #
    # dic.popitem()
    # print(dic)

    #改:

      改的方法有直接修改和update修改。

    1 dic={'jj': 66, 'dd': 33, 'gg': 44, 'kk': 88, 'sa': 'hha'}
    2 dic['jj'] = 888
    3 print(dic)结果:{'jj': 888, 'dd': 33, 'gg': 44, 'kk': 88, 'sa': 'hha'}
    4 ##########################
    5 
    6 dic={'jj': 66, 'dd': 33, 'gg': 44, 'kk': 88, 'sa': 'hha'}
    7 dic1={'kk':99}
    8 dic.update(dic1)#dic1当有相同key时直接覆盖添加,没有相同就直接添加入dic
    9 print(dic)

     #查:

        在python中get方法以及key查询:

    1 #get查询
    2 dic={'jj': 66, 'dd': 33, 'gg': 44, 'kk': 88, 'sa': 'hha'}
    3 dic.get('jj')
    4 dic.get('dds','没有找到')#当没有查找到的时候将会报错。
    5 print(dic)

    其他方法: keys,valuse,ltems方法

    1 #
    2 dic.keys() 字典中的所有key的值
    3 dic.valuse()字典中所有键值对
    4 dic.items()将字典所的key和键值对都编成元祖的模式输出
    5 都可以转换为list并用for循环转换出来。

    #关于分别赋值:

    
    
     1 # a,b =2,3
     2 # a,b=b,a  #分别赋值
     3 
     4 # a = 2
     5 # b = 3
     6 # c = a
     7 # a = b
     8 # b = c
     9 # print(a,b)
    10 
    11 #在dic.item()用分别赋值的方法将所有的元祖取出来。
    12 for a,b in dic.items():
    13     print(a,b)
    
    
    
     
  • 相关阅读:
    移动 App 接入 QQ 登录/分享 图文教程
    Word 最后一页无法删除-解决办法
    Java快速入门-04-Java.util包简单总结
    Java快速入门-03-小知识汇总篇(全)
    SSM 框架-06-详细整合教程(IDEA版)(Spring+SpringMVC+MyBatis)
    二叉树的镜像
    浅析I/O模型及其设计模式
    远程方法调用(RMI)原理与示例
    树的子结构
    合并两个排序的链表
  • 原文地址:https://www.cnblogs.com/wpcbk/p/8625521.html
Copyright © 2011-2022 走看看