栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python源码中的学习笔记

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python源码中的学习笔记

字典基础
#
# 主题:字典基础
#

if __name__ == '__main__':
    # 字典是一种 python 数据结构
    # 字典以键值对(key: value)的方式存储数据,字典是一个无序的序列(排列有前后顺序)
    # 列表是无序序列,排列无先后顺序
    # 相当于 Javascript 中的对象
    # 字典通过 hash 函数和键值对中的键,计算出存储位置,之后才能找到对应的值
    # 键值对的键时不可变序列(不能进行增删改查),如字符串、整数等
    # 字典和列表都是可变序列,都可以进行增删改查
创建字典
#
# 主题:创建字典
#

if __name__ == '__main__':
    # 使用花括号
    scores = {'Bob': 100, 'Jenny': 90, 'Danny': 80}
    print(scores)               # {'Bob': 100, 'Jenny': 90, 'Danny': 80}
    print(type(scores))         # 

    # 使用内置函数 dict
    student = dict(name = 'Liming', age = 20)
    print(student)              # {'name': 'Liming', 'age': 20}

    # 空字典
    d = {}
获取字典的元素
#
# 主题:获取字典的元素
#

if __name__ == '__main__':
    scores = {'Bob': 100, 'Jenny': 90, 'Danny': 80}

    # 使用 []
    print(scores['Danny'])          # 80
                                    # 若键在原字典中不存在,则报错 KeyError,既无法找到对应的键

    # 使用 get 方法
    print(scores.get('Danny'))      # 80
                                    # 若键在原字典中不存在,则 get 方法返回默认值 None
    print(scores.get('我', 0))      # 0
                                    # 若键在原字典中不存在,则可以返回自定义返回值
字典元素的增删改
#
# 主题:字典元素的增删改
#

if __name__ == '__main__':
    scores = {'Bob': 100, 'Jenny': 90, 'Danny': 80}

    # 判断键是否存在于原字典中
    print('我' in scores)            # False
    print('我' not in scores)        # True

    # 删除字典元素
    del scores['Danny']
    print(scores)                   # {'Bob': 100, 'Jenny': 90}

    scores.clear()                  # 清空字典
    print(scores)                   # {} 即空字典

    # 添加字典元素
    scores['我'] = 100
    print(scores)                   # {'我': 100}
    scores['me'] = 99
    print(scores)                   # {'我': 100, 'me': 99}

    # 改写字典元素
    scores['我'] = 98
    print(scores)                   # {'我': 98, 'me': 99}
获取字典视图
#
# 主题:获取字典视图
#

if __name__ == '__main__':
    scores = {'Bob': 100, 'Jenny': 90, 'Danny': 80}

    # keys 方法获取字典中所有的 key
    keys = scores.keys()
    print(keys)                 # dict_keys(['Bob', 'Jenny', 'Danny'])
    print(type(keys))           # 
    print(list(keys))           # ['Bob', 'Jenny', 'Danny']
                                # 将所有 key 组成的视图转换为列表

    # values 方法获取字典中所有 value
    values = scores.values()
    print(values)               # dict_values([100, 90, 80])
    print(type(values))         # 
    print(list(values))         # [100, 90, 80]

    # items 方法获取字典中所有 key: value 对
    # 下面的输出结果中的小括号是元组
    items = scores.items()
    print(items)                # dict_items([('Bob', 100), ('Jenny', 90), ('Danny', 80)])
    print(type(items))          # 
    print(list(items))          # [('Bob', 100), ('Jenny', 90), ('Danny', 80)]

遍历字典元素
#
# 主题:遍历字典元素
#

if __name__ == '__main__':
    scores = {'Bob': 100, 'Jenny': 90, 'Danny': 80}

    for item in scores:
        print(item, scores[item], scores.get(item))     # 第一个参数控制输出键
                                                        # 第二、三个参数控制输出值
    
字典的特点
#
# 主题:字典的特点
#

if __name__ == '__main__':
    d = {'name': 'Danny', 'name': 'Jenny'} # 当有相同的键时,后出现的键值对会覆盖掉前面的键值对
    print(d)                # {'name': 'Jenny'}

    d = {'name': 'Smith', 'nikename': 'Smith'}  # value 可以重复
    print(d)                # {'name': 'Smith', 'nikename': 'Smith'}

    # 字典中的元素是无序的,所以无法在自定义位置处添加元素
    # 键必须是不可变对象(字符串、整数),列表不能作为键(因为列表是可变对象,无法计算哈希值)
    # 字典的存储空间可以根据需要动态地伸缩
    # 字典会浪费较大内存,是一种使用空间换时间的数据结构
    # 字典中第一个填入的数据不一定在字典的首位,因为需要根据数据的键计算哈希值,从而得到存储地址
    # 字典的存储位置与存入的先后顺序无关,而与键有关

字典生成式
#
# 主题:字典生成式
#

if __name__ == '__main__':
    items = ['Fruits', 'Books', 'Others']
    prices = [96, 78, 85]
    d = {item.upper(): price for item, price in zip(items, prices)} # upper 方法是大写
    print(d)                # {'FRUITS': 96, 'BOOKS': 78, 'OTHERS': 85}
    # 若 items 或 prices 中元素个数不相等,则以元素个数少的那个为准建立字典
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/286398.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号