• Python中字典的使用方法


    Python的字典包含的元素是“键(key)-值(value)对”。列表和元组是以数字作为索引的,字典可以看作是用键作为索引的。

    1 字典的定义

    使用大括号或者dict()构造方法定义字典对象。

    1.1 使用大括号定义字典对象

    可以使用大括号来定义字典对象,字典中的“键值对”之间用冒号分隔,每个“键值对”用逗号分隔,代码如下所示:

    1. >>> d1 = {'Mon':1, 'Tue':2, "Wed":3}
    2. >>> type(d1)
    3. <class 'dict'>

    1.2 使用dict()构造方法定义字典对象

    也可以使用dict()构造方法定义字典对象,代码如下所示:

    1. >>> t1 = (('The',4),('Fri',5))
    2. >>> type(t1)
    3. <class 'tuple'>
    4. >>> d2 = dict(t1)
    5. >>> type(d2)
    6. <class 'dict'>
    7. >>> print(d2)
    8. {'The': 4, 'Fri': 5}

    其中,t1是嵌套了元组元素的元组,将其作为dict()构造方法的参数,创建变量d2,d2是字典对象,其包含的“键值对”即为嵌套的子元组包含的元素。

    2 字典对象的“增删改查”

    2.1 增加对象中的元素

    在前面提到,字典可以看作是用键作为索引的。因此,可以之间用键的方式添加字典对象中的元素,代码如下所示:

    1. >>> d2['Sat'] = 6
    2. >>> print(d2)
    3. {'The': 4, 'Fri': 5, 'Sat': 6}

    以上代码中,通过中括号包围的键,为d2添加了一个键值对。

    2.2 删除对象中的元素

    与添加元素类型,可以通过键删除字典对象中的元素,代码如下所示:

    1. >>> del d2['The']
    2. >>> print(d2)
    3. {'Fri': 5, 'Sat': 6}

    在以上代码中,通过del()函数和键,删除了字典中的元素。

    2.3 修改对象中的元素

    可以通过键来修改字典对象中的元素,代码如下所示:

    1. >>> d2['Fri'] = 7
    2. >>> print(d2)
    3. {'Fri': 7, 'Sat': 6}

    2.4 查看对象中的元素

    2.4.1 查看对象中的键

    可以使用以下代码查看字典对象中的键:

    1. >>> for key in d2.keys():
    2. ...     print(key)
    3. ...
    4. ...     
    5. Fri
    6. Sat

    其中,通过字典对象key2调用了成员方法keys(),该方法返回的类型是“dict_keys”,其包含的元素即为字典中的键,最后通过for循环遍历键。

    2.4.2 查看对象中的值

    可以使用以下代码查看字典对象中的值:

    1. >>> for value in d2.values():
    2. ...     print(value)
    3. ...
    4. ...     
    5. 7
    6. 6

    其中,通过字典对象key2调用了成员方法values(),该方法返回的类型是“dict_values”,其包含的元素即为字典中的值,最后通过for循环遍历键。

    2.4.4 查看对象中的键值对

    可以使用以下代码查看字典对象中的键值对:

    1. >>> for item in d2.items():
    2. ...     print(item)
    3. ...
    4. ...     
    5. ('Fri', 7)
    6. ('Sat', 6)

    其中,通过字典对象key2调用了成员方法items(),该方法返回的类型是“dict_items”,其包含的元素即为字典中的键值对,最后通过for循环遍历键。

    3 注意事项

    3.1 字典对象的键必须是不可修改类型

    Python中的不可修改类型包括数字、字符串和元组;可修改类型包括列表、集合和字典等。字典对象的键必须是不可修改类型。

    1. >>> d3 = {1:'one', 2:'two', 3:'three'}
    2. >>> d4 = {[1,]:'one'}
    3. Traceback (most recent call last):
    4.   File "", line 1, in
    5.     d4 = {[1,]:'one'}
    6. TypeError: unhashable type: 'list'

    其中,d3的键是数字,此时定义d3的代码是正确的。而定义d4的键是列表,因为列表是可修改类型,因此定义d4的代码报错,报错信息为“类型错误:列表是不可哈希类型”,不可哈希类型指的就是可修改类型。

    3.2 字典对象中的键不能相同而值可以相同

    >>> d4 = {1:'one', 2:'two', 3:'three', 4:'one'}

    以上代码中,d4中有两个元素的值是“one”,此时代码正确。

    1. >>> d5 = {1:'one', 2:'two', 3:'three', 1:'four'}
    2. >>> print(d5)
    3. {1: 'four', 2: 'two', 3: 'three'}

    以上代码中,定义d5时,有两个元素的键是“1”,此时,后面的元素会覆盖前面的元素。

  • 相关阅读:
    【第四篇】-深入学习Git 工作区、暂存区和版本库
    C++动态输入一个Vector<int>或Vector<string>当作输入接口
    边缘计算那些事儿-kubeedge edged解读
    【BOOST C++ 12 函数式编程】(3) Boost.Boost.Bind
    汽车soa架构介绍
    Vue3-shallowRef 和 shallowReactive函数(浅层次的响应式)
    Anaconda Powershell Prompt和Anaconda Prompt的区别
    使用 ORM 与原始 SQL 的性能对比
    数据结构之图(存储)
    游戏服务器怎么挑选细节与技巧深度解析
  • 原文地址:https://blog.csdn.net/hou09tian/article/details/126256341