• 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
  • 相关阅读:
    ESG评级分歧及其工具变量大合集(2015-2022年)
    一起Talk Android吧(第四百零五回:画布的变换)
    [附源码]java毕业设计茶园认养管理平台
    1022 Digital Library
    2022年“移动云杯”算力网络应用创新大赛圆满落幕,百万大奖揭晓!
    安全测试BurpSuite-抓包篡改数据
    C语言:选择+编程(每日一练)
    用HTML+CSS做一个漂亮简单的花店网页【免费的学生网页设计成品】
    新版H3C华三GB0-191、GB0-371、381、391考试题型及考试介绍
    VueComponent的原型对象
  • 原文地址:https://blog.csdn.net/weixin_45865773/article/details/132853639