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

Python中for循环内布尔标识为何无法正确生效?

问题分析与解决

你的问题出在first = True的位置——它被放在了外层for stype in hi循环的内部,每次遍历新的字典时,first都会被重新设为True。而你的列表hi里每个字典都只有一个键值对,内层for typ in keys循环每次只执行一次,自然永远走if first的分支,根本没机会触发else。

要实现“第一个值带Value! ,后续仅打印值”的需求,你需要把first = True移到外层循环的外面,让这个标识在整个遍历过程中只初始化一次:

修正后的代码:

hi = [{"item1": "one"}, {"item2": "two"}]
first = True  # 移到外层循环外面
for stype in hi:
    keys = list(stype.keys())
    for typ in keys:
        if first:
            print("Value! ", stype.get(typ))
            first = False
        else:
            print("\t", stype.get(typ))

运行这段代码会输出:

Value!  one
         two

如果你的列表里有包含多个键的字典(比如hi = [{"item1": "one", "item3": "three"}, {"item2": "two"}]),修正后的代码也能正确处理:第一个键输出带Value! ,同一个字典里的后续键以及下一个字典的键都会缩进打印。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 14:40:32