Python 基础 -- 字典

  • Python 中将相关信息关联起来的称为字典;
  • 如果你学过 Java,那就可以当作 map 集合;
  • 如果没有任何语言基础,可以将字典理解为一种对应关系;
  • 例如,姓名 : 尼古拉斯·李四年龄 : 19
  • 以上两个都可以当作一个简单的表示人的字典,对字典进行解读:这个人的名字为尼古拉斯·李四,年龄为 19 岁。

1. 一个简单的字典

  • 其实,字典和列表以及元组类似,不同的是,列表是方括号 [] ,元组是圆括号 (),而字典是大括号 {}

  • 假设一个简单的打外星人小游戏,其中这些外星人的颜色和得分点各不相同;

  • 下面是一个简单的字典,存储了关于外星人的信息:
    在这里插入图片描述

  • 在 Python 中,字典是一系列键-值对

  • 每个键都与一个值相关联,上式例中,包含两个键-值对:

    • 键:color ---------- 值:green
    • 键:points -------- 值:5
  • 所以,当我们用 print 打印时,就可以通过键来访问与之相关联的值;

  • 与键相关联的可以是数字字符串列表甚至是字典

  • 键和值之间用冒号分隔;

  • 键-值对之间用逗号分隔;

  • 一个字典中,理论是可以存许多的键-值对;

2. 使用字典

2.1 访问字典中的值

  • 通过字典中的键可以得到与之对应的值;
    在这里插入图片描述

2.2 添加键-值对

  • 字典是一种动态结构,可以随时在其中添加键-值对;

  • 添加键-值对,可按照如下格式进行:

    字典名[] =
  • 下例中,将对上述 alien_0 字典进行键-值对的添加;
    在这里插入图片描述

  • 如上述例子所述,对原先的 alien_0 字典进行键-值对的添加,其中,添加了:

    • 键:x_position --------- 值:0
    • 键:y_position --------- 值:25
  • 最终结果显示,alien_0 字典包含四个键-值对;

  • 有时候,也可以先定义一个空字典,然后在根据需求添加所需的键-值对。

2.3 修改字典中的值

  • 修改字典中的值相对来说就比较简单,就相当于给变量重新赋值;

  • 修改格式如下:

    字典名[] = 新值
    
  • 针对上述例子,我们将颜色和得分对应的值都进行修改:
    在这里插入图片描述

2.4 删除键-值对

  • 对于字典中不需要的信息,可以使用 del 删除;

  • 使用 del 删除键-值对的格式如下:

    del 字典[]
    
  • 经过 del 删除的键-值对将被永久删除,不可恢复;
    在这里插入图片描述

2.5 由相似的对现象组成的字典

  • 之前的示例中,字典存储的都是一个对象的多种信息;

  • 但是,字典也可以存储众多对象的同一种信息;
    在这里插入图片描述

3. 遍历字典

  • 对字典的遍历有三种方式:
    • 遍历字典的所有键-值对;
    • 遍历字典的所有键;
    • 遍历字典的所有值;

3.1 遍历所有的键-值对

  • 遍历字典的所有键-值对需要使用内置函数 items()

  • items() 函数以列表返回可遍历的(键, 值)元组数组;

  • 语法为:

    字典名.items()
    
  • 使用 items() 遍历字典时,返回的键-值对顺序与存储顺序不同;

  • 是应为,Python 不在乎键-值对的顺序,只在乎键-值对之间的关联关系;
    在这里插入图片描述

3.2 遍历所有的键

  • 遍历字典的所有键需要使用内置函数 keys()

  • keys() 函数以列表返回一个字典所有的键;

  • 语法为:

    字典名.keys()
    
  • 遍历字典时,会默认遍历所有的键,因此,keys() 函数可以省略;
    在这里插入图片描述

  • 可以使用 sorted() 函数来获得按特定顺序排列的键列表:
    在这里插入图片描述

3.3 遍历所有的值

  • 遍历字典的所有的值需要使用内置函数 values()

  • values() 函数以列表返回一个字典所有的值;

  • 语法为:

    字典名.values()
    
  • 遍历字典时,字典中的值可能会重复,可以使用 set 集合来去除重复项;

  • 集合类似于列表,但是集合中的元素都必须是独一无二的;
    在这里插入图片描述

4. 嵌套

  • 嵌套:将一系列字典存储在列表中,或者将列表作为值存储在字典中;

4.1 列表中存储字典

  • 每一个外星人都有超过一种的信息,每一个外星人的所有信息可以作为一个字典;

  • 当外星人成群结队时,可以将每个外星人字典存储到列表中;
    在这里插入图片描述

4.2 在字典中存储列表

  • 列表只能作为值嵌套在字典中;

  • 因为字典中键必须不可变,所以键可以用数字、字符串或元组充当,但是不能使用列表;

  • 当字典中的某一个键需要多个值时,就可以将列表嵌套在字典中;
    在这里插入图片描述

4.3 在字典中存储字典

  • 可在字典中嵌套字典,但是这会导致代码复杂;

  • 例如,有多个用户,每个用户都有的用户名;

  • 在字典中,将用户名作为键,将每位用户的信息存储为一个字典;
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值