zoukankan      html  css  js  c++  java
  • day06 Python 字典

    1、字典的简单介绍
    字典(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没有要求.可以保存任意类型的数据

    2、字典操作

    dict1 = {}
    dict1["1"] = "a" # 如果字典不存在key则新增,否则修改
    dict1["2"] = 2
    dict1["2"] = "B" # 如果key不存在,则新增;如果存在则覆盖原来的key:value
    
    # 如果字典中不存在这个key,setdefault()将新增一个新的key:value;如果存在这个key,setdefault()不会覆盖原来的key:value
    dict1.setdefault("3","c")
    dict1.setdefault("3","default")
    
    dict1.pop("3")
    dict1.popitem()  # 随机删除
    dict1.clear() # 清空字典
    
    dict2 = {"1":"fhb","2":"test","100":"A"}
    dict1.update(dict2) # 将dict2中的key value更新到dict1中,存在的key则修改对应的value,不存在则新增
    # print(dict1["fhb"]) # KeyError: 'fhb'
    
    print(dict1.get("fhb")) # None
    
    # 遍历
    for k,v in dict1.items(): # 循环dict1.items()得到的是一个元组,使用k,v去解构这个元组得到key个value
        print(k,v)
    

    3、实例

        有如下值li= [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。

    即: {'k1': 大于66的所有值列表, 'k2': 小于66的所有值列表} 。

    li = [11,22,33,44,55,66,77,88,99,90]
    dict2 = {}
    
    for k in li:
        if k > 66:
            dict2.setdefault("k1",[]).append(k) # 第一次循环的时候 dict2.setdefault("k1",[]) 会在空字典中创建{"k1",[]} ,返回的是一个 空列表,所以可以直接append()
        else: 
            dict2.setdefault("k2",[]).append(k)
            
    print(dict2)
    

      

     

      

  • 相关阅读:
    讲解开源项目:一步步跑起来个 Java 前后端分离的人力资源管理系统
    HelloDjango 第 12 篇:解锁博客侧栏,GoGoGo!
    HelloDjango 第 11 篇:自动生成文章摘要
    Python 命令行之旅:深入 argparse(二)
    MongoDB 复制机制
    GridView自定义分页
    接口分离原则
    依赖倒置原则
    访问 IIS 元数据库失败 的解决方法
    开放封闭原则
  • 原文地址:https://www.cnblogs.com/fanghongbo/p/9837113.html
Copyright © 2011-2022 走看看