第六章:Python基本数据结构——字典

字典是 Python 中最基本的数据结构。

字典是另一种可变容器模型,且可存储任意类型对象。

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

字典作为 Python 的关键字和内置函数,变量名不建议命名为 dict

键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字。

一、字典的概述

  • 什么是字典

    • 字典是 Python 中最基本的数据结构之一,与列表一样是可变序列
    • 键值对的方式存储数据,字典是一个无序的序列
  • 字典的示意图

image-20220819185856654

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

二、字典的创建

  • 最常用的方式:使用花括号

    • 代码演示
    """1、使用{}创建字典"""
    scores = {"张三": 100, "李四": 98, "王五": 88}
    print(scores)
    print(type(scores))
    
  • 使用内置函数dict()

    • 代码演示
    """2、使用内置函数dict()创建"""
    student = dict(name="tom", age=19)
    print(student)
    
  • 创建一个空字典

    • 代码演示
    """创建一个空字典"""
    dict3 = {}
    print(dict3)
    

三、字典的常用操作

3.1 字典中元素的获取

  • 获取元素的方法

    获取字典元素的方法举例区别
    []score[“张三”][]如果字典中不存在指定的key抛出KeyError异常
    get()方法score.get(“张三”)get()方法取值,如果字典中不存在指定的key,并不会抛出KeyError而是返回None
    可以通过参数设置默认的Value,以便指定的key不存在时返回
    • 代码演示
    """获取字典中的元素"""
    scores = {"张三": 100, "李四": 98, "王五": 88}
    """第一种方式,使用[]"""
    print(scores["张三"])
    
    """第二种方式,使用get()方法"""
    print(scores.get("张三"))
    
    """差异性"""
    # print(scores["阿萨德"])
    print(scores.get("阿萨德"))
    print(scores.get("阿达", 99))
    

3.2 字典中元素的判断

  • 字典中key的判断

    方法/语句说明
    in指定的Key在字典中存在返回True
    not in指定的Key在字典中不存在返回True
    • 代码演示
    """key的判断"""
    scores = {"张三": 100, "李四": 98, "王五": 88}
    print("张三" in scores)
    print("张三" not in scores)
    
    print("阿达" in scores)
    print("阿达" not in scores)
    

3.3 字典中元素的删除、添加、修改

  • 代码演示
"""删除指定的key——value"""
del scores["张三"]
print(scores)
# 清空字典所有元素
scores.clear()
print(scores)

"""字典元素的新增操作"""
scores["柯蓝"] = 100
print(scores)

"""字典元素的修改操作"""
scores["柯蓝"] = 10
print(scores)

3.4 获取字典的视图

  • 获取字典视图的三个方法
方法说明
key()获取字典中所有的key
values()获取字典中所有的value
items()获取字典中所有的 key : vaule 键值对
  • 代码演示
scores = {"张三": 100, "李四": 98, "王五": 88}
"""获取所有的key"""
keys = scores.keys()
print(keys)
print(type(keys))
# 将所有的key组成的视图转换成列表
print(list(keys))

print("\n")
"""获取所有的value"""
values = scores.values()
print(values)
print(type(values))
print(list(values))

print("\n")
"""获取所有的key-value"""
items = scores.items()
print(items)
print(type(items))
print(list(items))  # 转换之后的列表元素有元组组成

3.5 字典元素的遍历

  • 代码演示
scores = {"张三": 100, "李四": 98, "王五": 88}
"""字典元素的遍历"""
for item in scores:
    print(item)
    print(item, scores[item], scores.get(item))

四、字典的特点

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

五、字典的生成式

字典生成式,简称“生成字典的公式“

  • 调用内置函数——zip()

    • 用于将可迭代对象作为参数,将对象中的元素打包成一个元组,然后返回这些元组组成的列表
  • 代码演示

"""已知两个列表,生成一个字典
items = ['Fruits', 'Books', 'Others']
prices = [96, 78, 85,100,200]
"""
items = ['Fruits', 'Books', 'Others']
prices = [96, 78, 85,100,45566]

d = {item.upper(): price for item, price in zip(items, prices)}
print(d)
# 如果用于生成的两个列表中的参数个数不相等,取较小的一个
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

巧克力配酸奶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值