python-day05-study

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():

           print(key)

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

  for value in dic.values()

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

猜你喜欢

转载自www.cnblogs.com/ITdong-1/p/9274243.html
今日推荐