• python字典


    dict_python

    • 字典(dicy)是一种可变的数据结构,它是由键(key)和对应的值(value)组成的无序集合。
    • 字典中的键必须是唯一的,而值可以是任意类型的对象。可以使用大括号 {} 来创建一个字典,并使用冒号 : 来分隔键和值。

    1.字典的实现原理

    • 字典的实现原理与查字典类似,查字典是先根据部首或拼音查找对应的页码,python中的字典是根据key查找value所在的位置。

    2.字典的特点

    • 字典中的所有元素都是一个 key-value 对,key不允许重复,value可以重复
    • 字典中的元素是无序的
    • 字典中的key必须是不可变对象
    • 字典可以根据需要动态地伸缩
    • 字典会浪费较大的内存,是一种使用空间换时间的数据结构

    3.字典的创建

    • 最常用的创建方式:使用花括号
    scores = {'张三': 100, '李四': 98, '王五': 45}
    # {'张三': 100, '李四': 98, '王五': 45}
    
    • 1
    • 2
    • 使用内置函数
    student = dict(name = 'Jack', age = 20);
    # {'name': 'Jack', 'age': 20}
    
    • 1
    • 2
    • 空字典
    d = {}
    d2 = dict()
    # {}
    
    • 1
    • 2
    • 3

    4.字典的常用操作

    • []取值与使用get()取值的区别
    • []如果字典中不存在指定的key,抛出KeyError异常
    • get()方法取值,如果字典中不存在指定的key,并不会抛出KeyError;
      而是返回None,可以通过参数设置默认的value,以便指定的key不存在时返回
    scores = {'张三': 100, '李四': 98, '王五': 45}
    
    print(scores['张三'])  # 100
    print(scores.get('张三'))  # 100
    
    print(scores['美羊羊'])  # 报错:KeyError: '美羊羊'
    print(scores.get('美羊羊'))  # None
    print(scores.get('沸羊羊', 99))  # 99是在查找指定的key不存在返回的默认结果 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 判断指定元素是否存在字典中
    • in: 存在返回True
    • not in: 不存在返回False
    scores = {'张三': 100, '李四': 98, '王五': 45}
    
    print('张三' in scores)  # True
    print('张三' not in scores)  # False
    
    • 1
    • 2
    • 3
    • 4
    • 新增、删除、修改、清空
    scores = {'张三': 100, '李四': 98, '王五': 45}
    
    scores['陈六'] = 89
    print(scores)  # {'张三': 100, '李四': 98, '王五': 45, '陈六': 89}
    
    del scores['张三']  # 删除指定的key-value对
    print(scores)  # {'李四': 98, '王五': 45, '陈六': 89}
    
    scores['陈六'] = 100
    print(scores)  # {'李四': 98, '王五': 45, '陈六': 100}
    
    scores.clear()
    print(scores)  # {}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 获取字典视图的三个方法
    方法含义
    keys()获取字典中所有key
    values()获取字典中所有value
    items()获取字典中所有key,value对
    scores = {'张三': 100, '李四': 98, '王五': 45}
    
    # 获取所有的key
    keys = scores.keys()
    print(keys)  # dict_keys(['张三', '李四', '王五'])
    print(type(keys))  # 
    print(list(keys))  # ['张三', '李四', '王五'] 将所有的key组成的视图转成列表
    
    # 获取所有的value
    values = scores.values()
    print(values)  # dict_values([100, 98, 45])
    print(type(values))  # 
    print(list(values))  # [100, 98, 45]
    
    # 获取所有的 key-value 对
    item = scores.items()
    print(item)  # dict_items([('张三', 100), ('李四', 98), ('王五', 45)])
    print(list(item))  # [('张三', 100), ('李四', 98), ('王五', 45)] 转换之后的列表元素是由元组组成
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 字典元素的遍历
    scores = {'张三': 100, '李四': 98, '王五': 45}
    
    for item in scores:
        print(item, scores[item], scores.get(item))
    
    • 1
    • 2
    • 3
    • 4

    5.字典生成式

    items = ['Fruits', 'Books', 'Others']
    prices = [96, 78, 85, 100, 120]
    
    d = {item.upper(): price for item, price in zip(items, prices) }
    print(d)  # {'FRUITS': 96, 'BOOKS': 78, 'OTHERS': 85}
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    WPF Button去除按钮边框,添加下划线
    苞米豆的多数据源 → dynamic-datasource-spring-boot-starter,挺香的!
    【编译原理】手工打造语法分析器
    Vue项目使用axios配置请求拦截和响应拦截以及判断请求超时处理提示
    代码随想录算法训练营 单调栈part01
    AI绘画Stable Diffusion【艺术写真】:蒙版法图生图,局部重绘实现AI艺术写真
    h5插件_h5页面嵌入客户端调试
    python数据分析及可视化(六)Pandas的对齐运算、混合运算、统计函数、排序函数、处理缺失值及数据的存储与读取
    Nuxt 菜鸟入门学习笔记七:SEO 和 Meta 设置
    Maven install 报错程序包不存在问题的解决
  • 原文地址:https://blog.csdn.net/weixin_45865773/article/details/132853639