zoukankan      html  css  js  c++  java
  • 万恶之源

      

    一. 字典的简单介绍
    字典(dict)是python中唯一的一个映射类型.他是以{ }括起来的键值对组成. 在dict中key是
    唯一的. 在保存的时候, 根据key来计算出一个内存地址. 然后将key-value保存在这个地址中.
    这种算法被称为hash算法, 所以, 切记, 在dict中存储的key-value中的key'必须是可hash的,
    如果你搞不懂什什么是可哈希, 暂时可以这样记, 可以改变的都是不可哈希的,
    那么可哈希就意味着不可变. 这个是为了了能准确的计算内存地址而规定的.
    已知的可哈希(不可变)的数据类型: int, str, tuple, bool
    不可哈希(可变)的数据类型: list, dict, set

    语法 :
    {key1: value1, key2: value2....}
    key必须是不可变(可哈希)的. value没有要求.可以保存任意类型的数据

    dict保存的数据不是按照我们添加进去的顺序保存的. 是按照hash表的顺序保存的. 而hash表
    不是连续的. 所以不能进行切片工作. 它只能通过key来获取dict中的数据

    1. 增加
    dic['name'] = '周润发' # 如果dict中没有出现这个key, 就会新增一个key-value的组合进dict,如果存在,则之前的会被覆盖
    dic.setdefault("李嘉诚", "房地产") # 如果dict中已经存在了. 那么setdefault将不会起作用

    2. 删除
    dic.pop("jay") #删除'jay'
    del dic["jay"]
    ret = dic.popitem() #随机删除
    dic.clear() #清空字典

    dict中的元素在迭代过程中是不允许进行删除的,
    把要删除的元素暂时先保存在一个list中, 然后循环list, 再删除

    3. 修改
    dic.update(dic1) # 把dic1中的内容更新到dic中. 如果key重名. 则修改替换. 如果不存在key, 则新增.

    4. 查询
    查询一般用key来查找具体的数据.
    print(dic['name'])
    # print(dic['sylar']) # 报错
    print(dic.get("ok"))
    print(dic.get("sylar")) # None
    print(dic.get("sylar", "牛B")) # 牛B


    dic.keys() # 将所有的key值查出来
    dic.values() # 将所有的value 查出来
    dic.items() #将字典以列表的形式展示出来

    for key, value in dic.items(): # ?? 这个是解构
    print(key, value)

    e, f = [1, 2, 3] # 解构的时候注意数量量必须匹配

    字典的嵌套
    同样采用降维操作.一层一层的看就好.


    循环len(li)次, 然后从后往前删除
    或者. 用另一个列表来记录你要删除的内容. 然后循环删除
    注意: 由于删除元素会导致元素的索引改变, 所以容易出现问题. 尽量不要再循环中直接去删除元素.
    可以把要删除的元素添加到另一个集合中然后再批量删除.

    dict中的fromkey(),可以帮我们通过list来创建一个dict
    dic = dict.fromkeys(["jay", "JJ"], ["周杰伦", "麻花藤"])
    print(dic)
    结果:
    {'jay': ['周杰伦', '麻花藤'], 'JJ': ['周杰伦', '麻花藤']}
    前面列列表中的每一项都会作为key, 后面列列表中的内容作为value. 生成dict

  • 相关阅读:
    软件工程读书笔记(9)——第九章 软件实现
    软件工程读书笔记(8)——第八章 面向对象设计
    学习进度03
    【转】python编码规范
    vim配置有竖对齐线
    编写自动升级程序
    XPath定位+web UI元素汇总
    黑马程序员入学基础测试(四)
    linux环境
    使用Micrisoft.net设计方案 前言
  • 原文地址:https://www.cnblogs.com/zpf666/p/9665016.html
Copyright © 2011-2022 走看看