• Python_字典


    一.什么是字典

    字典是python里的一种数据类型,特点是元素的无序性,和键key的唯一性。字典的创建方法是{key:values},字典里的键key只能是不可变的数据类型(整型,字符串或者是元组),值values可以是任何数据类型。字典里的一组key:values叫做一个键值对item。

    二.字典的基本操作

    创建一个字典

    dic = {'name':'joy','age':'28','hobby':{'girl_name':'xiaohan','age':23},'is_handsome':True}

    另外一种创建方式,通过关键字创建 dict

    代码段

    dic2 = dict((('name','joy'),))
    
    print("元组的方式创建字典:",dic2)
    
    dic3 = dict([['name','joy'],])
    
    print("列表的方式创建字典:",dic3)
    

      输出结果

    元组的方式创建字典: {'name': 'joy'}
    列表的方式创建字典: {'name': 'joy'}

    三.查看字典 keys、values、items

    代码段

    dic = {'name':'chenzhang','age':27}
    
    dic1 = dic['age']     #
    
    print("通过键去取值:",dic1)
    
    dic5 = {'age':18,'name':'joy','hobby':'boy'}
    
    print("通过键去取值:",dic5['hobby'])
    
    dic6 = {'age':18,'name':'joy','hobby':'boy'}
    
    print("使用列表的格式,查看字典的键:",list(dic6.keys()))
    
    print("使用列表的格式,查看字典的值:",list(dic6.values()))
    
    print("用列表的格式,查看字典的键值对:",list(dic6.items()))
    

      输出结果

    通过键去取值: 27
    通过键去取值: boy
    使用列表的格式,查看字典的键: ['age', 'name', 'hobby']
    使用列表的格式,查看字典的值: [18, 'joy', 'boy']
    用列表的格式,查看字典的键值对: [('age', 18), ('name', 'joy'), ('hobby', 'boy')]
    

    四.新增键值对 setdefault 

    代码段

    dic4 = {'name':'joy'}
    dic4['age'] = 18
    print("新增键值对:",dic4)
    
    ret = dic4.setdefault('age',32)
    print("如果键存在,不修改键值对,返回原有值:",ret)
    
    ret = dic4.setdefault('shengao',168)
    print("如果键不存在,新增键值对:",dic4)
    

      输出结果

    新增键值对: {'name': 'joy', 'age': 18}
    如果键存在,不修改键值对,返回原有值: 18
    如果键不存在,新增键值对: {'name': 'joy', 'age': 18, 'shengao': 168}

      五.修改字典 fromkeys

    代码段

    dic7 = {'name':'陈璋','age':'23','hobby':'girl'}
    dic7['age'] = 27                # 通过键去修改值
    print("通过键去修改值:",dic7)
    
    dic13=dict.fromkeys(['host1','host2','host3'],'test')
    print("使用formkeys方法,给每一键加上(test)值:",dic13)
    
    dict14= dict.fromkeys(['host1','host2','host3'],['test1','test2'])
    print("使用formkeys方法,给每一键加上(列表)值:",dict14)
    
    dict14['host2'][1]= 'test3'
    print("改字典中host2中test2的值:",dict14)
    

      输出结果

    通过键去修改值: {'name': '陈璋', 'age': 27, 'hobby': 'girl'}
    使用formkeys方法,给每一键加上(test)值: {'host1': 'test', 'host2': 'test', 'host3': 'test'}
    使用formkeys方法,给每一键加上(列表)值: {'host1': ['test1', 'test2'], 'host2': ['test1', 'test2'], 'host3': ['test1', 'test2']}
    改字典中host2中test2的值: {'host1': ['test1', 'test3'], 'host2': ['test1', 'test3'], 'host3': ['test1', 'test3']}
    

    六.更新 update

    代码段

    dic8 = {'age':18,'name':'joy','hobby':'girl'}
    dic9 = {'shengao':180,'name':'joychen'}
    dic8.update(dic9)
    print("更新,修改已有的键值对,增加没有的键值对:",dic8)
    

      输出结果

    更新,修改已有的键值对,增加没有的键值对: {'age': 18, 'name': 'joychen', 'hobby': 'girl', 'shengao': 180}
    

     七.删除 clear pop popitem del

    代码段

    dic10 = {'name':'joychen','age':18,'class':1}
    dic10.clear()
    print("清空字典:",dic10)
    
    dic12 = {'name':'joychen','age':18,'class':1}
    ret = dic12.pop('age')
    print("删除字典中指定键值对,并返回该键值对的值:",ret)
    print("删除后的结果:",dic12)
    
    dic13 = {'name':'joychen','age':18,'class':1}
    a = dic13.popitem()
    print("随机删除某组键值对,并以元组方式返回值:",a)
    print("删除后的结果:",dic13)
    
    del dic13  # 删除这个字典
    

      输出结果

    清空字典: {}
    删除字典中指定键值对,并返回该键值对的值: 18
    删除后的结果: {'name': 'joychen', 'class': 1}
    随机删除某组键值对,并以元组方式返回值: ('class', 1)
    删除后的结果: {'name': 'joychen', 'age': 18}
    

    七.多层嵌套大字典查询

    代码段

     # 种类大字典
     class_dict = {"蔬菜":{"苦瓜":["很苦","有降火功效"],
                         "南瓜":["比较甜","个头也比较大"],},
                   "水果":{"西瓜":["很甜","形状是圆的"],
                         "橘子":["清甜可口","包含多种维生素"]},
                   "电器":{"空调":["凉爽","耗电"],
                         "洗衣机":["快速洗衣","节省时间"],
                         "微波炉":["快速加热","方便快捷"]},
                   "交通":{"自行车":["上坡费劲","适合短程"],
                         "摩托车":["速度快","不安全"],
                         "汽车":["适应多种天气","价格昂贵"]}
                   }
     aa = class_dict["交通"]["摩托车"][1]  #能过键去找值,最后通过索引号找到对应的信息
     print(aa)
    

      输出结果

    不安全
    

      

  • 相关阅读:
    java 的 四 个 基 本 特 性 ——封装 继承 多态 抽象
    java中的对象 方法 引用 等一些抽象的概念是什么意思呢?
    谈谈java中的并发(一)
    来说说Java中String 类的那些事情
    Alibaba SpringCloud (一) Nacos 集群环境搭建
    Window 环境下SonarQube的安装与部署
    Windows 环境下MySQL 8.0.15 安装配置指南
    Docker 入门
    Springboot中,Tomcat启动war包的流程
    SpringCloud入门(十一):Sleuth 与 Zipkin分布式链路跟踪
  • 原文地址:https://www.cnblogs.com/joy-sir/p/12218702.html
Copyright © 2020-2023  润新知