• 字符串 列表 元组 字典 集合3.11字典


    一、引入

    场景1

    如果有列表

    nameList = ['xiaoZhang', 'xiaoWang', 'xiaoLi'];
    

      

    如果发现"xiaoWang"这个名字写错了,通过下标既可以修改

    nameList[1] = 'xiaoxiaoWang'
    

      

    但如果列表的顺序发生了变化,如下

    nameList = ['xiaoWang', 'xiaoZhang',  'xiaoLi'];
    

      

    此时就必须需要修改下标,才能完成名字的修改

    nameList[0] = 'xiaoxiaoWang'
    

      

    问:有没有方法,既能存储多个数据,还能在访问元素的很方便就能够定位到需要的那个元素呢?

    场景2

    学生信息列表,每个学生信息包括学号、姓名、年龄等,如何从中找到某个学生的信息?

    students = [[1001, "王bao强", 24], [1002, "马rong", 23], [1005, "宋x",24], ...]
    

      

    假如上述列表有100个人的信息,此时会发现想要找到某个人的信息虽然我们可以数数0、1、2、。。。。但这也太麻烦了

    问:有没有更方便的方式呢?

    通过上面的2个场景的描述,发现虽然列表可以很轻松的实现数据的正删改查,但当多个数据时,想要快速定位到某个数据就会很不方便

    基于此原因,Python发明了一种特殊的下标,可以快速的找到想要的数据

    拥有这种特殊下标的数据类型就是字典

    二、基本使用

    1. 定义格式

    {key: value, key2: value ...}
    

      

    说明:

    • key可以理解为:我们自己可以定义的下标
    • value可以理解为:我们要存储的真正的数据
    • 字典只要存储一个数据,就必须用key: value(我们常称为键值对)组成

    2. 示例

    定义一个字典,存储王老师的信息

    teacher_wang = {"name": "王老师", "age": 18, "home": "山东省青岛市", "web_site": "www.codetutor.top"}
    

      

    如果感觉一行太长,写不开,可以用如下的方式

    teacher_wang = {
        "name": "王老师",
        "age": 18,
        "home": "山东省青岛市",
        "web_site": "www.codetutor.top"
    }
    

      

    说明:

    • 字典能够存储多个数据
    • 列表中找某个元素时,是根据下标进行的,字典中找某个元素时,是根据'key'(就是冒号:前面的那个值,例如上面代码中的'name'、'home'、'age')
    • 字典的每个元素由2部分组成,键:值

    3. 根据key访问value

    teacher_wang = {
        "name": "王老师",
        "age": 18,
        "home": "山东省青岛市",
        "web_site": "www.codetutor.top"
    }
    
    print(teacher_wang['name'])  # 获取姓名
    print(teacher_wang['age'])  # 获取年龄
    print(teacher_wang['home'])  # 获取住址
    print(teacher_wang['web_site'])  # 获取网站
    

      

    结果:

    王老师
    18
    山东省青岛市
    www.codetutor.top
    

      

    三、遍历字典

    1. keys()

    遍历字典的key(键)

    teacher_wang = {
        "name": "王老师",
        "age": 18,
        "home": "山东省青岛市",
        "web_site": "www.codetutor.top"
    }
    
    for key in teacher_wang.keys():
        print(key)
    

      

    运行结果

    name
    age
    home
    web_site
    

      

    2. values()

    遍历字典的value(值)

    teacher_wang = {
        "name": "王老师",
        "age": 18,
        "home": "山东省青岛市",
        "web_site": "www.codetutor.top"
    }
    
    for val in teacher_wang.values():
        print(val)
    

      

    运行结果

    王老师
    18
    山东省青岛市
    www.codetutor.top
    

      

    3. items()

    遍历字典的项(元素)

    teacher_wang = {
        "name": "王老师",
        "age": 18,
        "home": "山东省青岛市",
        "web_site": "www.codetutor.top"
    }
    
    for temp in teacher_wang.items():
        print(temp)  # 此时temp是元组
    

      

    运行结果

    ('name', '王老师')
    ('age', 18)
    ('home', '山东省青岛市')
    ('web_site', 'www.codetutor.top')
    

      

  • 相关阅读:
    2008北京奥运男子100M决赛黑人的竞技场
    Bit,Bytes,KB,MB,GB,TB,PB,EB,ZB,YB
    请教:TableLayoutPanel.Controls.Add中的下一个可行的单元位置(.net2.0,C#)
    ORACLE获取表所占用空间大小计算和展示
    C#中创建对象的方式
    一个怕360的病毒
    ubuntu以root权限登录
    安装ubootmkimage
    安装配置armlinuxgcc
    移动虚拟机注意问题
  • 原文地址:https://www.cnblogs.com/dong4716138/p/15686730.html
Copyright © 2020-2023  润新知