• [Python] 字典操作及方法总结


    字典是Python内置的数据结构之一,以键值对的方式存储数据 

    值value可以取任何数据类型,但键key必须是不可变的,如字符串,数字或元组

    1.创建字典

    字典的每个键值对(key-value)冒号:分割,每个键值对之间用逗号,分割,整个字典包括在花括号{}

    直接赋值创建字典格式如下所示:

    dicts = {key1: value1, key2: value2,...}

    1. dict1 = {'name':'Andy', 'age':18}
    2. # {'name': 'Andy', 'age': 18}
    3. print(dict1)

    使用内置函数dict()创建字典 

    1. stu_info1 = dict({'name':'Andy', 'age':18})
    2. # {'name': 'Andy', 'age': 18}
    3. print(stu_info1)
    4. stu_info2 = dict([('num', '20220907'), ('name', 'Jack'), ('sex', 'male')])
    5. # {'num': '20220907', 'name': 'Jack', 'sex': 'male'}
    6. print(stu_info2)
    7. stu_info3 = dict(num = '20220101', name = 'Lee', sex = 'male')
    8. # {'num': '20220101', 'name': 'Lee', 'sex': 'male'}
    9. print(stu_info3)
    10. stu_info4 = dict(zip(['num', 'name', 'sex'], ['20220201', 'Rita', 'male']))
    11. # {'num': '20220201', 'name': 'Rita', 'sex': 'male'}
    12. print(stu_info4)

    创建一个空字典

    1. dict2 = {}
    2. dict3 = dict()

    提示Tips:字典中的所有元素都是一个key-value键值对,key不允许重复,value可以重复;一个key只能对应一个value,所以多次对一个key放入value,后面的value值会把前面的value值覆盖掉

    1. dicts = {'name':'Rita','age':18}
    2. # {'name': 'Rita', 'age': 18}
    3. print(dicts)
    4. dicts['age'] = 20
    5. # {'name': 'Rita', 'age': 20}
    6. print(dicts)

    2.字典常见操作方法

    2.1查询字典dict包含的键值对数

    len(dict)用于返回字典dict包含的项(键值对)数

    注明:dict代表字典

    1. dict = {'name':'Andy', 'age':18}
    2. print(len(dict)) # 2

    2.2访问字典value值

    dict[key]用于返回与键key相关联的值value 

    注明:dict代表字典,key代表键

    1. dict = {'name':'Andy', 'age':18}
    2. print(dict['name']) # Andy
    3. print(dict['age']) # 18

    2.3值value关联到键key 

    dict[key] = value用于将值value关联到键key

    注明:dict代表字典,key代表键,value代表值

    1. dict = {'name':'Andy', 'age':18}
    2. dict['gender'] = '男'
    3. # {'name': 'Andy', 'age': 18, 'gender': '男'}
    4. print(dict)
    5. dict['age'] = 22
    6. # {'name': 'Andy', 'age': 22, 'gender': '男'}
    7. print(dict)

    2.4删除键为key的项 

    del dict[key]用于删除键为key的项

    注明:dict代表字典,key代表键

    1. dict = {'name':'Andy', 'age':18}
    2. del dict['age']
    3. # {'name': 'Andy'}
    4. print(dict)

    2.5检查字典dict是否包含键为key的项

    key in dict用于检查字典dict是否包含键为key的项

    注明:dict代表字典,key代表键

    1. dict = {'name':'Andy', 'age':18, 'gender':'男'}
    2. print('name' in dict) # True
    3. print('address' in dict) # False

    2.6清空字典 

    clear()用于删除所有的字典项(即删除字典内所有元素)

    1. dict = {}
    2. dict['name'] = 'Rita'
    3. dict['age'] = 20
    4. # {'name': 'Rita', 'age': 20}
    5. print(dict)
    6. dict.clear()
    7. # {}
    8. print(dict)

    扩展补充知识

    1. x = {}
    2. y = x
    3. x['name'] = 'Andy'
    4. # {'name': 'Andy'}
    5. print(y)
    6. x = {}
    7. # {'name': 'Andy'}
    8. print(y)
    1. x = {}
    2. y = x
    3. x['name'] = 'Andy'
    4. # {'name': 'Andy'}
    5. print(y)
    6. x.clear()
    7. # {}
    8. print(y)

    2.7复制字典

    copy()返回一个新字典,其包含的键值对与原来的字典相同(浅复制)

    1. dict = {'username':'admin', 'machines':['foo','bar','baz']}
    2. copy_dict = dict.copy()
    3. # 对copy_dict字典进行处理
    4. copy_dict['username'] = 'Andy'
    5. copy_dict['machines'].remove('bar')
    6. # {'username': 'admin', 'machines': ['foo', 'baz']}
    7. print(dict)
    8. # {'username': 'Andy', 'machines': ['foo', 'baz']}
    9. print(copy_dict)

    2.8返回字典所有的键

    keys()用于返回字典中的所有键key

    1. dict = {'name':'Andy', 'age':20, 'gender':'男'}
    2. print(dict.keys()) # dict_keys(['name', 'age', 'gender'])

    2.9返回字典中的所有值 

    values()用于返回字典中的所有值value

    1. dict = {'name':'Andy', 'age':20, 'gender':'男'}
    2. print(dict.values()) # dict_values(['Andy', 20, '男'])

    不同于方法keys(),values()返回的值可包含重复值

    1. dict = {}
    2. dict[1] = 1
    3. dict[2] = 2
    4. dict[3] = 3
    5. dict[4] = 1
    6. # dict_values([1, 2, 3, 1])
    7. print(dict.values())

    2.10返回可遍历的(键, 值)元组列表

    items()用于返回包含所有字典项的列表,其中每个元素都以(key,value)形式进行呈现

    1. dict = {'name':'Andy', 'age':20, 'gender':'男'}
    2. # dict_items([('name', 'Andy'), ('age', 20), ('gender', '男')])
    3. print(dict.items())

    2.11返回指定键的值 

    get(key, default=None)用于返回指定键key的对应值value

    1. dict = {'name':'Andy', 'age':20, 'gender':'男'}
    2. print(dict.get('gender')) # 男

    注意:使用get()方法访问不存在的键key时,不会报错,而是返回None,我们可指定"默认值",这样就吸返回我们指定的值而不是None

    1. dict = {'name':'Andy', 'age':20, 'gender':'男'}
    2. # 访问不存在的键key
    3. print(dict.get('address')) # None
    4. print(dict.get('address','There is no this key')) # There is no this key

    扩展补充知识

    使用dict[key]访问字典value时,如果输入的键key并不在字典dict中,结果会报错

    1. dict = {'name':'Andy', 'age':20, 'gender':'男'}
    2. # 访问不存在的键key会报错
    3. print(dict['address']) # KeyError: 'address'

    2.12删除字典给定键key所对应的值value

    pop(key)用于删除字典给定键key所对应的值value(即将该键值对从字典中删除),返回值为被删除的值value

    1. dict = {'x':1, 'y':2, 'z':3}
    2. dict.pop('z') # 3
    3. print(dict) # {'x': 1, 'y': 2}

    2.13将字典dict2的键值对更新到字典dict1中

    update()使用一个字典中的项(键值对)来更新另一个字典 

    1. dict1 = {'name':'Tian', 'age':25, 'gender':'男'}
    2. dict2 = {'name':'Odin', 'address':'深圳'}
    3. dict1.update(dict2)
    4. # {'name': 'Odin', 'age': 25, 'gender': '男', 'address': '深圳'}
    5. print(dict1)
  • 相关阅读:
    Paddle安装
    Jmeter获取Websocket多帧消息的实现方法
    antd Form shouldUpdate 关联展示 form 数组赋值
    计算机体系结构:1.1.系统加速比计算例题
    Total derivative
    Unity场景物体动态合批
    大数据常见面试题:1
    信息学奥赛一本通 1262:【例9.6】挖地雷 动态规划基本型
    Java整合七牛云对象存储Kodo
    macos电脑矢量图设计AI2022中文
  • 原文地址:https://blog.csdn.net/Hudas/article/details/126744964