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

Python遍历列表字典时如何输出值为1的对应变量名而非索引

问题背景

原有代码通过列表存储水果对应的值,运行后会输出值为1的元素位置索引0、2,预期输出对应变量名Apples、Bananas,两次字典改写均未达到预期:

  • 第一版改写仅判断水果名是否为字典键,未校验对应值,导致输出所有水果名
  • 第二版改写条件判断语法逻辑错误,无法正常运行
实现思路

注意:Python普通列表仅存储元素值,元素存入列表后和原始赋值变量无绑定关系,无法直接通过列表元素反查原变量名。用字典存储「变量名:变量值」的映射是可行方案,只需要修正遍历和判断逻辑即可。

修正后代码
Apples = 1
Oranges = 0
Bananas = 1
Grapes = 0

FruitValues = {
    "Apples": Apples,
    "Oranges": Oranges,
    "Bananas": Bananas,
    "Grapes": Grapes
}

# 遍历字典键值对,筛选值为1的项输出名称
for fruit_name, fruit_value in FruitValues.items():
    if fruit_value == 1:
        print(fruit_name)
运行结果
Apples
Bananas
逻辑说明
  • 调用字典的items()方法遍历,可以同时获取每个条目的键(即水果名称字符串)和对应存储的值
  • 判断条件直接校验值是否等于1即可,遍历字典本身拿到的键必然存在于字典中,不需要额外做键存在性判断
  • 满足值为1的条件时,直接打印对应的键,即可得到预期的变量名输出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:15:37