zoukankan      html  css  js  c++  java
  • 快速的字典

    一,字典的定义

    1. 字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成. 在dict中key是唯⼀的. 在保存的时候, 根据key来计算出⼀个内存地址. 然后将key-value保存在这个地址中.这种算法被称为hash算法, 所以, 在dict中存储的key-value中的key必须是可hash的,可哈希就意味着不可变.

    2. 语法

      {key1: value1, key2: value2....}

      注意:key必须是不可变的(可哈希的),value可以保存任意类型的数据

    3. 特点

      • 无序:python3.6版本以上默认了咱们定义的顺序,python3.5以下是随机显示的.

      • 可变的

      • 可以存储大量数据,比列表还要大

      • 能够将数据进行关联,比较消耗内存

    二,字典的相关操作

    1. 新增

      dic = {"a":"b","b":"c"}
      dic["c"] = ["d"]   # 给出key和value添加,如果key已存在则会替换value
      dic.setdefault("c","d") # 先去字典中查看key存不存在,如果key存在会返回key所对应的value(可用于查找),如果key不存在就添加key和value
      
    2. 删除

      注意:字典没有remove

      dic = {"a":"b","b":"c"}
      dic.pop("a")  # 指定key弹出,有返回值,返回删除的value
      dic.popitem() # 随机弹出,有返回值,返回删除的value
      del dic["a"]  # 指定key删除
      del dic       # 删除整个字典
      dic.clear()   # 清空字典,得到空字典
      
    3. 修改

      dic[key] = "新的值"         # 指定key修改,key不存在就新增
      dic.update({1:2,'a':'a1'})  # 用字典更新字典,存在的替换,没有的新增,原来有这次没有的不变
      
    4. 查询

      查询只能通过key获取value,不能通过value获取key.

      print(dic[key])       # 指定key查找value,key不存在会报错
      print(dic.get(key,"返回"))  # 指定key查找value,key不存在会返回给出的返回值,默认None
      
    5. 其他相关操作

      dic = {"id": 123, "name": 'sylar', "age": 18, "ok": "科⽐"}
      dic.keys()   # 得到key的高仿列表,但不是列表,不支持索引,支持迭代遍历
      dic.values() # 得到value的高仿列表
      dic.items()  # 得到由(key,value)成对组成的元组组成的列表
      for el in dic: # 遍历列表得到key
      for el in dic.keys():
      for el in dic.values():
      for el in dic.items():   =>  (key,value)
      for k,v in dic.items():  => 得到key和value
      for el in enumerate(dic,start): # 给你要迭代的对象加一个序号start默认是0,枚举
      
    6. 字典的嵌套

      dic = {
          101:{1:['周杰伦','林俊杰'],2:{'汪峰':['国际章','前妻一','前妻二']}}
          102:{1:['李小龙','吴京','李连杰'],2:{'谢霆锋':['张柏芝','王菲']},3:['大象','奇奇']}
          103:{1:['郭美美','干爹'],2:{'王宝强':['马蓉','宋哲']}}
      }
      print(dic["102"][3][0]) => "大象"
      # 逐层用key查找
      
  • 相关阅读:
    【QCon笔记】Native 和 Web 融合
    点透
    测试
    Moom for mac 最棒的窗口管理软件
    Egret白鹭H5小游戏开发入门(三)
    Egret白鹭H5小游戏开发入门(二)
    Egret白鹭H5小游戏开发入门(一)
    关于Canvas模糊的问题
    利用Canvas实现360度浏览
    JS中取整以及随机颜色问题
  • 原文地址:https://www.cnblogs.com/zyyhxbs/p/10997374.html
Copyright © 2011-2022 走看看