zoukankan      html  css  js  c++  java
  • 字典,解构

    1.字典:

      是Python中唯一的一个映射类型,是用{}括起来的键值对组成;在dict中key是唯一的.在保存的时候,根据Key来计算出一个内存地址,然后将key – value保存在这个地址中,这种算法被称为hash算法.所key是可哈希的. 可以改变的都是不可哈希的

    已知的哈希类型:int str tuple bool

    不可哈希(可变)的数据类型:list,dict,set

    语法:{key1:value,key2:value…}  key是不可变的 所以key不能是list,dict,set

    2.字典的增删改查:

             增:

             dic = {}

             dic[‘name’] = ‘周星星’ 如果dict中没有这个key,就会新增一个dict   {‘name’:’周星星’}

    如果有则会覆盖

    dic.setdefault(‘李嘉诚’,’房地产’) 如果dict中没有key 则增加个dict {‘李嘉诚’:’房地产’}

    如果有则原dict不变

             删:

             dic.pop(key)  删除key指定的dict  返回值是value

             dic.itempop()  随机删   返回值 (key, value)

             dic.clear()      清空字典

             del dic[key]      删除key指定的dict  

             改:

             dic{key} = ‘ ddd‘  原tuple有key 覆盖即修改

             dic = {'国际章':'汪峰的老婆','马桶':'脏','马蓉':'王宝强的前任老婆','王建立':10000}

           dic['王建立'] = dic['王建立'] – 500

      

           dic1 = {"id": 123, "name": 'sylar', "age": 18}

      dic2 = {"id": 456, "name": "麻花藤", "ok": "wtf"}

      dic1.update(dic2)  将dic2放到dic1中 同样key的覆盖,不同的添加

      查:

      1.print(dic[‘key’])  如果没有key 报错

      2.dic.setdefault(‘key’) 如果有 返回key对应的value

      用法:ret = dic.setdefault(‘key’,’value’)

                       print(ret)

      如果dict中没有对应的key,会先添加到dict中 在返回value

      如果dict中有key 直接返回原dict中key对应的value

      3.print(dic.get(‘key’) ) 如果没有 返回None

       print(dic.get(‘key’,’没有值’) )如果没有 后边可添加默认值, 即返回 ’没有值’ 如果有直接拿到值

    3.dict的其他操作:

             dic = {"id": 123, "name": 'sylar', "age": 18, "ok": "科比"}

             print(dic.keys())  #dict_keys(['id', 'name', 'age', 'ok'])  打印出dic中所有的key 伪列表

    可以用for循环:

      for key in dic.keys():  #也可以for key in dic:    效果一样

               print(key)

      print(dic.values()) #  dict_values([123, 'sylar', 18, '科比'] 打印出dic中所有的value 伪列表:  可以用for循环:

      for value in dic.values():              # for value in dic:

               print(value)

      print(dic.items())  #  dict_items([('id', 123), ('name', 'sylar'), ('age', 18), ('ok', '科比')]) 这个东西也是list. 只不不过list中装的是tuple

      for key,value in dic.items():  #解构

               print(key,value)

            

    4.解构:

             a,b = 1,2

    print(a,b)

    (c,d) = 3,4

    print(c,d)   #解构的时候注意数量必须匹配

    5.字典的嵌套:

  • 相关阅读:
    silverlight 中缓存应用程序相应的库文件
    Silverlight 4 Unleashed 读书笔记:第二章
    使用虚拟打印机提交文档的文本
    ORACLE 中为什么要把列名都转换成大写字母?
    在 silverlight 自由绘图(WriteableBitmapEx)
    新的 WINDOWS 2003 系统上装了 TOMCAT 6 启动不了
    计算两个坐标所形成的角的角度
    在 Silverlight 绘制线帽(箭头)
    Linux下安装memecache缓存程序
    Linux下安装、配置、启动Apache
  • 原文地址:https://www.cnblogs.com/ITdong-1/p/9274243.html
Copyright © 2011-2022 走看看