You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python字典技术疑问:取值逻辑解析及列表元素调用方法

Python字典相关问题解答

1. 字典如何理解要访问的内容?

Python字典是**键值对(key-value pair)**的集合,每个键唯一绑定一个值,内部靠哈希表实现快速映射。当你用字典[键]的语法访问时,字典会先核对这个键是否存在于自身的键集合中:

  • 存在的话,直接返回该键对应的关联值;
  • 不存在则抛出KeyError异常(用get()方法可以规避这个报错)。
    说白了,字典的访问逻辑就是「用键当“索引”,找对应的目标值」,键是访问的入口,值才是最终要获取的内容。

2. 代码中total_amount += menu[food]为何取的是价格值而非键名?

看你的代码逻辑:

  • menu是字典,键是食物名称(比如"Baja Taco"),值是对应价格(比如4.00);
  • food变量存储的是用户输入后格式化的食物名称(.title()方法让输入和字典键的大小写格式匹配,比如输入"baja taco"会转为"Baja Taco");
  • menu[food]本质是用food这个键去字典里查找对应的值,所以拿到的是价格,而非键名本身。
    举个具体例子:用户输入"baja taco",food变成"Baja Taco",menu[food]就等于menu["Baja Taco"],也就是4.00,所以total_amount += 4.00实现了累加价格的效果。

3. 字典值为列表时,如何调用第三个元素?

如果字典元素是"baja taco": [4.00, "yummy", "salty", "sweet", "crunch"],分两步获取第三个元素:

  1. 先通过键"baja taco"拿到整个列表:menu["baja taco"];
  2. 再用列表索引取第三个元素——注意Python列表索引从0开始,第三个元素对应的索引是2,最终写法是:
menu["baja taco"][2]

执行这段代码会返回"salty",也就是列表里的第三个元素。


附原代码

menu = {
    "Baja Taco": 4.00,
    "Burrito": 7.50,
    "Bowl": 8.50,
    "Nachos": 11.00,
    "Quesadilla": 8.50,
    "Super Burrito": 8.50,
    "Super Quesadilla": 9.50,
    "Taco": 3.00,
    "Tortilla Salad": 8.00
}

total_amount = 0

while True:
    try:
        food = input("Item: ").title()
        if food in menu:
            total_amount += menu[food]
            print("Total: $", end="")
            print("{:.2f}".format(total_amount))
    except EOFError:
        print()
        pass

内容的提问来源于stack exchange,提问作者Ziphy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 14:36:25