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

Python中从布尔值列表迭代更新字典及构建嵌套字典的问题

问题修复与实现方案

原代码的问题

  1. 语法错误:my_dict.update('result': result[-1])写法完全不对——update()要么传字典(比如{'key': val}),要么用关键字参数;而且result是布尔值,根本没有[-1]这种索引,运行会直接报错。
  2. 值被覆盖:就算语法改对了,每次都更新同一个键,之前的值会被覆盖,最后自然只剩一个键值对。

实现两层嵌套字典的方法

你要的是外层用True和False当键的两层字典,分两种常用场景给你代码:

场景1:收集每个结果的相关数据(比如索引)

如果需要记录每次迭代的结果对应的位置或其他数据:

my_dict = {True: [], False: []}
results = [True, True, False, True]

# 用enumerate拿到索引和结果
for idx, res in enumerate(results):
    # 把索引加到对应布尔值的列表里,也可以换成你实际需要存储的内容
    my_dict[res].append(idx)

print(my_dict)
# 输出:{True: [0, 1, 3], False: [2]}

场景2:统计True/False的出现次数

如果只是要统计两种结果的数量:

my_dict = {True: 0, False: 0}
results = [True, True, False, True]

for res in results:
    my_dict[res] += 1

print(my_dict)
# 输出:{True: 3, False: 1}

额外:动态适配结果类型(如果结果不止True/False)

如果不确定结果只有这两个值,可以动态创建外层键:

my_dict = {}
results = [True, True, False, True]

for res in results:
    # 如果键不存在就初始化一个空列表
    if res not in my_dict:
        my_dict[res] = []
    my_dict[res].append(res)  # 替换成你要存的内容就行

print(my_dict)
# 输出:{True: [True, True, True], False: [False]}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 13:17:31