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.字典的嵌套:

  • 相关阅读:
    poj 2485 Highways 最小生成树
    hdu 3415 Max Sum of MaxKsubsequence
    poj 3026 Borg Maze
    poj 2823 Sliding Window 单调队列
    poj 1258 AgriNet
    hdu 1045 Fire Net (二分图匹配)
    poj 1789 Truck History MST(最小生成树)
    fafu 1181 割点
    减肥瘦身健康秘方
    人生的问题
  • 原文地址:https://www.cnblogs.com/ITdong-1/p/9274243.html
Copyright © 2011-2022 走看看