美文网首页
Python基础--字典

Python基础--字典

作者: 琰雪儿 | 来源:发表于2021-05-30 15:13 被阅读0次

    字典等同于Java中的容器。与JavaScript中的Json对象更相似。由键值对组成,keyvalue用冒号:分割,每个键值对之间用逗号,分割,整个字典包括在花括号{}中。键必须是唯一的,值不是。键必须不可变,所以键可以是数字,字符串或元组,但不能是列表。

    1.字典的创建

    ①语法:dict = {key1 : value1, key2 : value2, key3 : value3 }
    >>> dict1 = {"name": "yanxueer", "age": "24"}
    >>> print(dict1)
    {'name': 'yanxueer', 'age': '24'}
    
    ②通过dict()映射其他字典或键/值序列对创建字典.
    # 映射其他字典
    >>> dict2 = dict(dict1)
    >>> dict2
    {'name': 'yanxueer', 'age': '24'}
    # 通过列表和元组创建
    >>> dict3 = dict([('name','yan'),('age','24')])
    >>> dict3
    {'name': 'yan', 'age': '24'}
    

    2.获取字典的值

    ①语法:dict[key]
    >>> dict1["name"]
    'yanxueer'
    

    当然也需要像列表中注意索引那样,也需要保证key的存在,否则就会出错。

    >>> dict1["Age"]
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    KeyError: 'Age'
    

    我们应该尽量避免系统中出现可能会出错的代码。所以get()方法是一个更好的选择。

    get()方法来获取值,如果key存在于字典中则返回key的值,否则默认返回None,当然你可以指定其在不存在时返回什么值。
    >>> dict1.get("name")
    'yanxueer'
    >>> dict1.get("Age")
    # 默认为'None'
    >>> print(dict1.get("dfd"))
    None
    # 设置当不存在时返回为'1'
    >>> dict1.get("Age",1)
    1
    

    3.修改和添加字典

    ① 修改字典可以通过key值来获取字典value值之后直接修改
    >>> print(dict1)
    {'name': 'yanxueer', 'age': '24'}
    >>> dict1["age"] = 25
    >>> print(dict1)
    {'name': 'yanxueer', 'age': 25}
    
    setdefault():如果 key 在 字典中,返回对应的值。
    >>> dict1 = {'name': 'yanxueer'}
    >>> dict1.setdefault("name")
    'yanxueer'
    

    如果不在字典中,则插入 key 及设置的default,并返回设置的defaultdefault 默认值为 None

    # 默认值
    >>> dict1.setdefault("age")
    >>> dict1
    {'name': 'yanxueer', 'age': None}
    # 自行设置值
    >>> dict1.setdefault("sex",1)
    1
    >>> dict1
    {'name': 'yanxueer', 'age': None, 'sex': 1}
    
    ③ 也和修改字典的方式一样,当key值存在为修改,不存在则为添加
    >>> print(dict1)
    {'name': 'yanxueer', 'age': 25}
    >>> dict1["sex"] = "0"
    >>> print(dict1)
    {'name': 'yanxueer', 'age': 25, 'sex': '0'}
    

    4.删除字典

    deldel()删除字典的键和字典本身
    # 删除键 'name'
    >>> del dict1['name']
    >>> dict1
    {'age': 25, 'sex': '0'}
    

    del dict删除字典

    >>> del dict1
    >>> dict1
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'dict1' is not defined
    
    clear()清空字典
    >>> dict1 = {"name": "yanxueer", "age": "24"}
    >>> dict1
    {'name': 'yanxueer', 'age': '24'}
    >>> dict1.clear()
    >>> dict1
    {}
    
    pop():删除字典给定键 key 所对应的值,返回值为被删除的值。
    >>> dict1 = {"name": "yanxueer", "age": "24"}
    >>> dict1.pop("age")
    '24'
    >>> dict1
    {'name': 'yanxueer'}
    

    key值必须给出否则就会报错。

    >>> dict1 = {"name": "yanxueer", "age": "24"}
    >>> dict1.pop()
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: pop expected at least 1 argument, got 0
    

    如果要删除的 key 不存在,则需要添加默认值,否则会报错。

    >>> dict1
    {'name': 'yanxueer'}
    >>> dict1.pop("age")
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    KeyError: 'age'
    >>> dict1.pop("age",24)
    24
    
    popitem():返回并删除字典中的最后一对键和值。
    >>> dict1 = {"name": "yanxueer", "age": "24"}
    >>> dict1.popitem()
    ('age', '24')
    >>> dict1
    {'name': 'yanxueer'}
    

    如果字典已经为空,却调用了此方法,就报错。

    >>> dict1.clear()
    >>> dict1.popitem()
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    KeyError: 'popitem(): dictionary is empty'
    

    5.获取所有的key或者value

    keys():以列表返回一个字典所有的键
    >>> dict1 = {"name": "yanxueer", "age": "24"}
    >>> dict1.keys()
    dict_keys(['name', 'age'])
    
    values():以列表返回字典中的所有值
    >>> dict1 = {"name": "yanxueer", "age": "24"}
    >>> dict1.values()
    dict_values(['yanxueer', '24'])
    

    6.字典的嵌套

    上面我们知道字典的key可以时任何不可变类型,那么它的value可以为任意类型,包括字典本事,字典的value为字典则就是字典的嵌套
    dict = {key:{key:value}}

    >>> dict1 = {"key":{"key":"value"}}
    >>> dict1
    {'key': {'key': 'value'}}
    # 嵌套字典或者列表都是化整为零逐步分解
    >>> dict1['key']['key']
    'value'
    

    字典的学习到此结束。

    每日一言
    好的习惯不会一天养成,也不会因为一天而废止,所以克己,律己。用耐心,决心,平常心去对待。

    相关文章

      网友评论

          本文标题:Python基础--字典

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