1.7.4字典

编程入门 行业动态 更新时间:2024-10-10 13:18:12

1.7.4<a href=https://www.elefans.com/category/jswz/34/1770269.html style=字典"/>

1.7.4字典

字典

字典(dictionaries):
1.也是一种容器, 不同于列表, 元组, 字典是无序的.
2.可改变, 可以增加数据, 修改数据, 删除数据. 查询数据
字典由键值对组成.没有索引, 通过键查找数据.
3.注意:
字典中的键相当于列表,元组中的索引, 所以是唯一的, 键不能重复(值可以重复出现)
字典的写法: {键1: 值1, 键2: 值2, 键3: 值3}

  • 创建字典

    # 1.声明一个空字典, 注意命名: 不能用 dict 这个单词
    dict1 = {}
    print(dict1, type(dict1))
    # 2.创建一个非空字典
    dict2 = {"name": "张艺兴", "age": 16, "sex": "男"}
    print(dict2)
    dict3 = {"对抗路": "花木兰", "打野路": "孙悟空", "中路": "武则天", "射手位": "马可波罗", "辅助位": "张飞"}
    print(dict3)
    # 3.使用dict() 函数创建字典
    dict4 = dict(name="卢俊义", age=16, sex="男")
    print(dict4)
    
  • 字典的键与值

    # 4.字典的键可以用什么类型的数据?
    # 键: 可以用整型, 字符串来表示, 也可以用浮点型表示, 还可以用布尔型, None
    # 可以用元组来做字典的 键, 列表不可以做键, 字典不可以做键.  列表和字典是可以改变的,所以不能做字典的键, 字典的键是不变的.
    d1 = {False: "zero", True: "one", 2.0: "two", (1,): "three", "4": "four"}
    # TypeError: unhashable(不可哈希) type: 'list'
    # TypeError: unhashable type: 'dict'
    print(d1)
    # 5.字典的值可以用什么类型的数据?
    # 字典值: 可以用 整型, 浮点型, 字符串, 布尔值, 列表, 元组, 字典 None 表示
    d2 = {"整型": 123, "浮点型": 3.11415926, "字符串": "动手敲键盘", "布尔型": True, "列表": [11, 22], "元组": (1, 2, 3), "字典": {"字典": {}}, None: None}
    print(d2)
    
  • 字典的数据添加与修改

    # 6.字典数据添加, 字典名[键] = 值
    d3 = {}
    d3["name"] = "高球"
    print(d3)
    d3["age"] = 16
    d3["height"] = 175
    d3["weight"] = 110.2
    print(d3)
    # 7.字典数据修改  字典名[要修改的键] = 新值
    d3["name"] = "吴奇隆"
    print(d3)
    
  • 字典数据查询与删除

    # 8.查询字典数据, 根据字典的键来查询对应的值, 
    print(d3["name"])
    print(d3["age"])
    print(d3["weight"])# 9.删除字典数据 使用del关键字用来删除数据
    del d3["age"]
    print(d3)
    del d3["height"]
    print(d3)
    
  • 字典查询函数

    # 创建字典
    lol = {"上单": "鳄鱼", "中路": "沙皇", "下路": "伊泽瑞尔", "打野": "莉莉娅", "辅助": "锤石"}
    print(lol)
    # 1.get(): 括号中填入字典的键, 用来获取相对应的值. 当填的键不存在时,返回值为None.第二个参数填写一个备用数值, 当我们要查询的键不存在则返回备用的数值.
    v = lol.get("中路")
    print(v)
    v = lol.get("坦克", "泰坦")
    print(v)
    # 创建字典, 值为列表
    movie_star = {"武打电影": ["成龙", "甄子丹", "李连杰"], "喜剧电影": ["沈腾", "徐峥", "周星驰", "王宝强"], "恐怖电影": ["林正英", "午马"], "战争电影": ["张译", "吴京", "鹿晗", "欧豪"]}
    print(movie_star)
    # 2.遍历字典
    # 直接遍历字典, 得到的是字典中的键
    for m in movie_star:print(m)
    # key: 键   value: 值
    # 4.items(): movie_star.items() 会将字典打包成一个列表嵌套元组, 元组中放入键值对.
    # 一个变量遍历字典items 会得到键值对打包的元组.
    for t in movie_star.items():print(t)
    # 两个变量遍历字典items 会得到键和值
    for key, value in movie_star.items():print(f"键:{key} - 值: {value}")
    # 5.keys()取键: 取出字典中所有的键, 放到一个列表中
    print(movie_star.keys())
    for k in movie_star.keys():print(k)
    # 6.values()取值: 取出字典中所有的值, 放到一个列表中
    print(movie_star.values())
    for v in movie_star.values():print(v)
    
  • 字典值删除

    # 7.pop(): 括号中填写字典的键, 对这个键值对进行一个删除. 返回值是键对应的值.
    print("-----------------------------")
    m = movie_star.pop("恐怖电影")
    print(movie_star)
    print(m)
    # 8.popitem(): 删除还是排在最后的键值对. 返回值是元组, 键值对放在元组中.
    print("-----------------------------")
    m = lol.popitem()
    print(m)
    # 9.clear(): 清空字典.
    movie_star.clear()
    print(movie_star)
    
  • 字典案例

    手机销售系统(用字典写):

    1. 创建一个字典,键:手机品牌做键, 值: 手机的信息(型号,价格,库存)2. 根据查询字典的方法增加增删改查3. 将字典的增删改查写入每个功能选项
    
phones = {"华为": ["华为mate40", 4999, 5000], "苹果": ["iphone12", 5100, 6000], "小米": ["小米10", 5999, 8000], "vivo": ["vivo-x50", 5498, 8000]}# 系统循环起来
while True:print("""---------------------------------------------|                                           ||         欢迎您来到手机购买系统!          ||            1.查看所有的手机品牌           ||            2.购买手机                     ||            3.更改手机库存信息             ||            4.移除手机库存信息             ||            5.退出系统                     |---------------------------------------------""")# 首先让用户键盘输入选择的序号num = input("请输入您要操作的序号:")# 这个while判断循环,判断num是否为我们的选项,不是从新输入while num not in ["1", "2", "3", "4", "5"]:num = input("输入序号错误,请重新输入: ")if num == "1":# 没有写功能,就先写个pass保证这个地方不会报错# pass   # 相当于什么都不执行print("以下是本店所有的手机信息:")for k in phones.keys():# 取字典的键print(k)# 取字典的值, 值是列表,存放手机信息phone_list = phones[k]# 输出列表中的手机信息print("     手机型号:%s  手机价格:%d 手机库存:%d" % (phone_list[0], phone_list[1], phone_list[2]))elif num == "2":print("欢迎您购买手机")# 输入手机品牌,进行购买logo = input("请输入您要购买的品牌:")# 判断手机品牌字典中是否有# phones.keys()  是一个列表, 相当于# ["华为", "苹果", "小米", "vivo"]while logo not in phones.keys():logo = input("输入品牌不存在,请查询后再输入:")# 输出手机相关的信息print(f"""{logo}手机型号:{phones[logo][0]}手机价格: {phones[logo][1]}手机库存:{phones[logo][2]}""")# 键盘输入购买的数量,转成int类型,给库存做一个计算number = int(input("请输入购买的数量:"))while number <= 0 or number > phones[logo][2]:number = int(input("输入购买数量不正确,请重新输入:"))# 库存值phones[logo][2] -= number   # 假如说买的数量过多库存不足# 手机总消费:手机单价 * 买的手机数量print(f"顾客您好!总共消费 {phones[logo][1] * number} 元")print("购买成功,正在扣除费用,请稍后...")elif num == "3":print("库存信息修改")logo = input("请输入您要修改信息的品牌:")while logo not in phones.keys():logo = input("输入品牌不存在,请查询后再输入:")print(f"""{logo}手机型号:{phones[logo][0]}手机价格: {phones[logo][1]}手机库存:{phones[logo][2]}""")phones[logo][0] = input("输入手机型号:")phones[logo][1] = int(input("输入手机价格:"))phones[logo][2] = int(input("输入手机库存:"))print(f"""{logo} 牌手机信息已经被修改手机型号:{phones[logo][0]}手机价格: {phones[logo][1]}手机库存:{phones[logo][2]}""")elif num == "4":print("库存信息删除")logo = input("请输入您要删除信息的品牌:")while logo not in phones.keys():logo = input("输入品牌不存在,请查询后再输入:")# 第一种删除方法,pop()函数,括号中方如要删除的字典的键,删除键值对phones.pop(logo)# 第二种 使用del关键字。# del phones[logo]print(f"{logo} 相关信息已经被删除")elif num == "5":# 结束程序exit()

更多推荐

1.7.4字典

本文发布于:2024-03-23 15:03:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1739556.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字典

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!