• Python字典的用法总结


    字典定义:每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号,分割,整个字典包括在花括号 {} 中 ,格式如下所示:

    d = {key1 : value1, key2 : value2 }

    一、创建字典的几种方法总结

    (1)创建空字典 

    1. dic = {}
    2. type(dic)
    3. #

    (2)使用{}花括号方法,直接赋值创建字典

    1. thisdict = {
    2. "brand": "Porsche",
    3. "model": "911",
    4. "year": 1963
    5. }
    6. print(thisdict)

    (3)使用dict()函数和关键字的方法创建字典

    1. thisdict = dict(spam = 1, egg = 2, bar =3)
    2. print(thisdict)
    3. # {'spam': 1, 'egg': 2, 'bar': 3}

     (4)使用dict()函数和二元组的列表创建

    1. lis = [('spam', 1), ('egg', 2), ('bar', 3)]
    2. thisdict = dict(lis)
    3. print(thisdict)
    4. # {'bar': 3, 'egg': 2, 'spam': 1}

    (5)dict和zip结合创建

    1. dic = dict(zip('abc', [1, 2, 3]))
    2. print(dic)
    3. # {'a': 1, 'c': 3, 'b': 2}

     (6)通过字典推导式创建

    1. dic = {i:2*i for i in range(3)}
    2. print(dic)
    3. # {0: 0, 1: 2, 2: 4}

    (7)通过dict.fromkeys()创建,通常用来初始化字典, 设置value的默认值

    1. dic = dict.fromkeys(range(3), 'x')
    2. print(dic)
    3. # {0: 'x', 1: 'x', 2: 'x'}

    (8)其他方法 

    1. lis = ['x', 1, 'y', 2, 'z', 3]
    2. dic = dict(zip(lis[::2], lis[1::2]))
    3. print(dic)
    4. # {'x': 1, 'y': 2, 'z': 3}
    5. lis[::2]
    6. # ['x', 'y', 'z']
    7. lis[1::2]
    8. # [1, 2, 3]

    二、查找字典元素
        有两种方式:
            a.  dict[key] -> 若 key 值不存在,会报 KeyError 的错误 ; 若 key 值存在,返回 key 所对应的 value 值

    1. c = {'语文': 90, '数学': 90, '英语': 75}
    2. print(c['英语'])
    3. # 75

    ​        b.  dict.get(key, default) -> 若 key 不存在不会 报错, 会返回 default

    1. c = {'语文': 90, '数学': 90, '英语': 75}
    2. print(c.get('英语'))
    3. print(c.get('没有'))
    4. # 75
    5. # None

           c.setdefault()根据键找到值,如果有这个键就返回值,如果没有就返回default参数,并添加新的键值对。

    1. c = {'语文': 90, '数学': 90, '英语': 75}
    2. c.setdefault('英语',"100")
    3. print(c)
    4. c.setdefault('物理',"100")
    5. print(c)
    6. # {'语文': 90, '数学': 90, '英语': 75}
    7. # {'语文': 90, '数学': 90, '英语': 75, '物理': '100'}

          总结:dict 字典根据 key 来查看 dict 中的数据 就相当于 list 中 要根据 index 来看其,相对应的数据。但是 dict 是无序的,所以导致没有 index 这一说法,只能根据 key

            d.嵌套字典的查找元素

    1. #字典的嵌套
    2. d={'成绩':{'语文': 90, '英语': 75, '物理': '100'}}
    3. print(d['成绩']['物理'])
    4. #嵌套字典,嵌套序列
    5. d={'成绩':['语文', 90, '英语'], 75:['物理', '100']}
    6. print(d[75][0])
    7. 100
    8. 物理

    三、获取字典的键,值,键值对

    dict.items() 、dict.keys() 、dict.values()是字典的视图对象,分别获取键值对,键和值。

    1. c = {'语文': 90, '数学': 90, '英语': 75, '物理': '100'}
    2. key=c.keys()
    3. print("key:",key)
    4. value=c.values()
    5. print("value:",value)
    6. item=c.items()
    7. print("item:",item)
    8. # key: dict_keys(['语文', '数学', '英语', '物理'])
    9. # value: dict_values([90, 90, 75, '100'])
    10. # item: dict_items([('语文', 90), ('数学', 90), ('英语', 75), ('物理', '100')])


    四、  新增/修改
        a.新增或修改单个元素:
            dict[key] = value  -> a. 当 key 值存在,就修改 key 所对应的 value 值
                                  b. 当 key 值不存在,就 添一个键值对 {key: value}       

    1. x={"语文":73,"数学":75}
    2. x["英语"]=75
    3. print(x)
    4. x["英语"]=60
    5. print(x)
    6. print(x.get("英语", 80))
    7. #{'语文': 73, '数学': 75, '英语': 75}
    8. #{'语文': 73, '数学': 75, '英语': 60}
    9. #60

      b.修改对各字典元素:update()

    1. c=dict(zip(["语文","数学","英语"],[73,75,75]))
    2. #update()修改多个
    3. c.update({"语文":100,"数学":90})
    4. print(c)
    5. # {'语文': 100, '数学': 90, '英语': 80}

    五.、删除
        两种方式:
            a. mydict.pop(key,default),根据 key 值 来删除字典中的键值对。

    1. c=dict(zip(["语文","数学","英语"],[73,75,75]))
    2. #update()修改多个
    3. c.pop("语文")
    4. print(c)
    5. {'数学': 75, '英语': 75}

            b. mydict.popitem(),默认删除 dict 字典中的最后一个元素。

    1. c=dict(zip(["语文","数学","英语"],[73,75,75]))
    2. #update()修改多个
    3. c.popitem()
    4. print(c)
    5. {'语文': 73, '数学': 75}

    c.del删除字典某个元素,删除整个字典del c 会报错,切片式del c[1:2]删除也会报错:

    1. c=dict(zip(["语文","数学","英语"],[73,75,75]))
    2. #update()修改多个
    3. del c["语文"]
    4. print(c)

     d.clear()清空字典:

    1. c=dict(zip(["语文","数学","英语"],[73,75,75]))
    2. #update()修改多个
    3. c.clear()
    4. print(c)
    5. {}

    六、 遍历
        四种方式:
    a. 遍历dict得到key ->  for key in mydict

    1. favorite_numbers = {'eric': [3, 11, 19, 23, 42],
    2. 'ever': [2, 4, 5],
    3. 'willie': [5, 35, 120],
    4. }
    5. # Display each person's favorite numbers.
    6. for name in favorite_numbers:
    7. print( name) # 等同于 print( name.title())
    8. # eric
    9. # ever
    10. # willie

    b.直接遍历keys, mydict.keys() -> 现将 dict 字典中的 keys 用一个 list 封装好, 然后再遍历   -> for key in mydict.keys()。

    1. for name in favorite_numbers.keys():
    2. print( name)
    3. # eric
    4. # ever
    5. # willie

    c. 遍历 values  -> mydict.values()  ->  将 dict 字典中的 values 用一个 list 封装好,然后再遍历  -> for value in mydict.values。

    1. favorite_numbers = {'eric': [3, 11, 19, 23, 42],
    2. 'ever': [2, 4, 5],
    3. 'willie': [5, 35, 120],
    4. }
    5. for name in favorite_numbers.values():
    6. print( name)
    7. #[3, 11, 19, 23, 42]
    8. #[2, 4, 5]
    9. #[5, 35, 120]


    d. 遍历 key 与 values -> mydict.items() -> 先将 dict 中的 键值对 用 元组 tuple 封装好,然后在放到 list 中, 最后在遍历  -> for item in mydict.items()


    5.  统计长度
        总结:
            len(mydict)
            统计的是字典的 key 值的个数
    6.  成员关系
        总结:
            '甜心' in mydict  -> false
            看的是属不属于 key ,是 key 之间的成员关系

  • 相关阅读:
    飞桨模型部署至docker并使用FastAPI调用(一)-docker安装与vscode连接
    网络系统管理 - Server02配置
    node多版本控制
    【Visual Leak Detector】库的 22 个 API 使用说明
    torchvision.transforms 数据预处理:Normalize()
    记一次 .NET某家装ERP系统 内存暴涨分析
    ElementUI之动态树+数据表格+分页->动态树,动态表格
    微信授权登录 | 全过程讲解[官方文档->代码梳理->注意点] uniapp+springboot(附Gitee源码)
    DevExpress WPF中文教程:Grid - 如何排序、分组、过滤数据(设计时)?
    shell脚本中循环语句(极其粗糙版)
  • 原文地址:https://blog.csdn.net/qimo601/article/details/128095933