前后端知识库 前后端知识库
首页
    • JavaScript
    • React
    • Vue
  • Python
  • Sanic
  • Linux
  • Ansible
归档
GitHub (opens new window)
首页
    • JavaScript
    • React
    • Vue
  • Python
  • Sanic
  • Linux
  • Ansible
归档
GitHub (opens new window)
  • Sanic

  • Python

    • Python 的动态类型介绍
    • 数字类型
    • Set类型
    • 字符串
    • 列表
    • 元组
    • 通用序列
    • 字典
    • 文件
    • 语句和语法
    • 赋值语句
    • 打印
    • if语句
    • loop循环
    • 迭代器和生成器
    • 文档
    • 函数
    • 作用域
    • 参数
    • 函数的高级特性
    • 模块
    • 模块包
    • 模块高级用法
    • 类 class
    • Python命名空间
    • 运算符重载
    • 类的设计模式
    • 类的高级主题
    • 异常
    • 异常对象
    • Unicode与字节串
    • 管理属性
    • 装饰器
    • 元类
    • 执行细节
  • backend
  • Python
devin
2023-09-09

字典

# 字典

1.字典是一些 "键 --- 值" 对的无序集和。它通过键来索引。

  • 字典是可变对象,它的元素的值的类型不限,它的元素的键类型是不可变类型

    意味着键类型不能是列表、set、,字典

  • 字典的常量表达式:{'a':3,'b':4},空字典的常量表达式为{}

  • dict()函数可以从关键字参数生成字典:dict(a=3,b=4)生成字典{'a':3,'b':4}

    • 你可以通过zip()函数生成关键字参数:dict(zip(['a','b'],[3,4])) 生成字典{'a':3,'b':4}
  • 你也可以用字典的.fromkeys()类方法生成字典:

    • dict.fromkeys(['a','b']) 生成字典{'a':None,'b':None}
    • dict.fromkeys(['a','b'],3) 生成字典{'a':3,'b':3}

    字典的生成

  • 字典索引:d[key]。字典索引返回对应的值

  • 键测试:key in d。测试指定键是否存在字典中

  • 字典的迭代:

    • d.keys():返回一个 dict_keys 对象,它是一个可迭代对象,迭代时返回键序列
    • d.values():返回一个 dict_values 对象,它是一个可迭代对象,迭代时返回值序列
    • d.items():返回一个 dict_items 对象,它是一个可迭代对象, 迭代时返回元组(键,值)的序列

      字典迭代在 Python3 中返回可迭代对象,在 Python2.7 中均返回列表。 因此在 Python3 中如果想得到列表,必须将返回值传入list()函数中得到列表

  • 字典的拷贝:d.copy()。只是字典的浅拷贝

  • 获取键的值:通过d.get(key,default_value)。返回键对应的值, 若键不存在则返回 default_value

    对于d[key]返回对应的值,如果key不存在则抛出KeyError异常

    字典的索引、键测试、迭代和拷贝

  • 字典的操作:

    • d1.update(d2):合并两个字典,原地修改d1字典
    • d.pop(key): 从字典中删除key并返回该元素的值
    • del d[key]:从字典中删除key但是不返回该元素的值
    • d[key]=value:原地的添加/修改字典。当向不存在的键赋值时,相当于添加新元素
  • 获取字典中元素数量:len(d)。它也等于键列表/值列表的长度
    字典操作和数量

  • 字典本身也是一个可迭代对象,它的迭代方法为:

    ```
    for key in d:
      pass
    ```
    

    它在列表的键上迭代,也等价于

    ```
    for key in d.keys()
      pass
    ```
    

    字典迭代

    2.Python3 中字典的变化:

  • d.keys()、d.values()、d.items()返回的是可迭代对象,他们称为视图对象, 而不是列表。修改字典,则这些视图对象会相应变化

  • 支持字典解析表达式来生成字典,如 {k:v for k,v in zip(['a','b','c'],[1,2,3])}, {k:v for k,v in [('a',1),('b',2),('c',3)]}

  • 取消了 Python2 中的has_key(key)方法,而用key in d表达式取代

  • Python3 中,只有相等不等测试有效,字典的大小比较无效
    Python3字典变化

    3.Python3 中字典是一个迭代器对象,其迭代结果是返回键序列

编辑 (opens new window)
上次更新: 2023/09/09, 12:09:00
通用序列
文件

← 通用序列 文件→

Theme by Vdoing | Copyright © 2023-2023 devin | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式