美文网首页
Python-字典(dict)

Python-字典(dict)

作者: 阿凡提说AI | 来源:发表于2024-09-05 14:07 被阅读0次

    在Python中,字典(dict)是一种可变容器模型,它可以存储任意类型对象,其中每个对象都存储为一个键值对。键和值是映射关系,键是唯一的,而值则不必唯一。以下是关于Python字典的一些基本用法和特性:

    创建字典

    你可以通过几种方式创建字典:

    • 使用花括号 {} 创建一个空的字典或者直接初始化键值对:
    empty_dict = {}
    dict1 = {'key1': 'value1', 'key2': 'value2'}
    
    • 使用 dict() 构造函数:
    dict2 = dict(key1='value1', key2='value2')
    
    • 从键值对列表创建字典:
    dict3 = dict([('key1', 'value1'), ('key2', 'value2')])
    

    访问字典中的值

    可以通过键来访问字典中的值:

    value = dict1['key1']
    

    如果尝试访问一个不存在的键,会引发一个 KeyError。为了避免这种情况,可以使用 get() 方法,它会在键不存在时返回一个默认值(默认为 None):

    value = dict1.get('key1', 'default_value')
    

    修改字典

    • 添加新的键值对:
    dict1['key3'] = 'value3'
    
    • 修改现有键的值:
    dict1['key1'] = 'new_value'
    
    • 删除键值对:
    del dict1['key1']
    

    或者使用 pop() 方法,它也会返回被删除的值:

    value = dict1.pop('key1')
    

    字典的方法

    字典提供了许多有用的方法,例如:

    • keys():返回字典中所有键的列表。
    • values():返回字典中所有值的列表。
    • items():返回字典中所有键值对的列表。
    • clear():删除字典中所有的元素。
    • copy():返回一个字典的浅复制。
    • update():使用另一个字典中的键值对更新字典。
    # 假设有两个字典
    dict1 = {'a': 1, 'b': 2, 'c': 3}
    dict2 = {'b': 4, 'c': 5, 'd': 6}
    
    # 使用 dict2 更新 dict1
    dict1.update(dict2)
    
    # dict1 现在是 {'a': 1, 'b': 4, 'c': 5, 'd': 6}
    # 注意 'b' 和 'c' 的值被 dict2 中的值覆盖了
    

    update() 方法也可以接受关键字参数,这些参数会被当作单个键值对来处理:

    # 继续使用上面的 dict1
    dict1.update(d=7, e=8)
    
    # dict1 现在是 {'a': 1, 'b': 4, 'c': 5, 'd': 7, 'e': 8}
    # 注意 'd' 的值被新的值覆盖了
    

    如果 update() 方法中的键在原字典中不存在,那么这些键值对会被添加到原字典中

    # 假设原字典是空的
    dict1 = {}
    dict2 = {'a': 1, 'b': 2}
    
    # 使用 dict2 更新 dict1
    dict1.update(dict2)
    
    # dict1 现在是 {'a': 1, 'b': 2}
    
    

    字典推导式

    Python支持通过字典推导式来快速生成字典:

    {x: x**2 for x in range(10)}
    

    这将创建一个字典,其键为0到9的数字,对应的值为它们的平方。

    字典的遍历

    你可以使用 for 循环遍历字典的键、值或者键值对:

    for key in dict1:
        print(key)  # 打印键
    for value in dict1.values():
        print(value)  # 打印值
    for key, value in dict1.items():
        print(key, value)  # 打印键值对
    

    len() 函数可以返回字典中键值对的数量。

    # 定义一个字典
    my_dict = {'a': 1, 'b': 2, 'c': 3}
    
    # 使用 len() 函数获取字典中键值对的数量
    number_of_items = len(my_dict)
    
    print(number_of_items)  # 输出: 3
    
    

    deepcopy()函数来自于 copy 模块,用于创建一个对象的深拷贝,即复制对象及其包含的所有对象。在处理字典时,如果字典的值包含可变对象(如列表、字典等),使用 deepcopy() 可以确保原始字典和复制后的字典完全独立。

    import copy
    
    original_dict = {'a': [1, 2, 3], 'b': {'inner_key': 'inner_value'}}
    copied_dict = copy.deepcopy(original_dict)
    
    # 修改复制后的字典不会影响原始字典
    copied_dict['a'].append(4)
    copied_dict['b']['inner_key'] = 'new_inner_value'
    
    print(original_dict)  # 输出: {'a': [1, 2, 3], 'b': {'inner_key': 'inner_value'}}
    print(copied_dict)    # 输出: {'a': [1, 2, 3, 4], 'b': {'inner_key': 'new_inner_value'}}
    
    

    fromkeys() 是字典类的一个静态方法,用于创建一个新字典,其中的键来自指定的可迭代对象,所有的键都映射到同一个值(默认为 None)。

    keys = ['a', 'b', 'c']
    default_value = 0
    new_dict = dict.fromkeys(keys, default_value)
    
    print(new_dict)  # 输出: {'a': 0, 'b': 0, 'c': 0}
    
    

    如果不指定默认值,则默认为 None:

    new_dict = dict.fromkeys(keys)
    print(new_dict)  # 输出: {'a': None, 'b': None, 'c': None}
    
    

    get() 方法用于获取字典中指定键的值。如果键不存在,get() 方法不会抛出异常,而是返回一个默认值(默认为 None)。你可以通过第二个参数指定一个默认返回值。

    my_dict = {'a': 1, 'b': 2}
    
    # 获取存在的键的值
    value_a = my_dict.get('a')  # 输出: 1
    
    # 获取不存在的键的值,返回 None
    value_c = my_dict.get('c')  # 输出: None
    
    # 获取不存在的键的值,指定默认返回值
    value_c = my_dict.get('c', 'Not Found')  # 输出: 'Not Found'
    
    

    popitem() 方法用于从字典中移除并返回一个键值对(项)。在Python 3.7+ 中,popitem() 保证移除的是字典中的最后一个键值对。

    my_dict = {'a': 1, 'b': 2, 'c': 3}
    
    # 使用 popitem() 移除并返回字典中的最后一个键值对
    last_item = my_dict.popitem()
    
    print(last_item)  # 输出: ('c', 3)
    print(my_dict)    # 输出: {'a': 1, 'b': 2}
    
    

    setdefault() 方法用于设置字典中某个键的值,如果该键不存在,则添加该键,并设置一个默认值。如果键已经存在,setdefault() 不会改变现有的值。

    my_dict = {'a': 1, 'b': 2}
    
    # 尝试设置键 'a' 的值,但由于 'a' 已存在,其值不会改变
    my_dict.setdefault('a', 100)
    
    # 尝试设置键 'c' 的值,由于 'c' 不存在,它会被添加到字典中
    my_dict.setdefault('c', 3)
    
    print(my_dict)  # 输出: {'a': 1, 'b': 2, 'c': 3}
    
    

    字典是Python中非常强大和灵活的数据结构,广泛用于存储和查找相关数据。

    相关文章

      网友评论

          本文标题:Python-字典(dict)

          本文链接:https://www.haomeiwen.com/subject/dblkljtx.html