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

如何找出Python字典中求和为6的两个键并输出对应值?

问题分析与解决

你的代码存在几个关键问题:

  1. 字典的键是字符串类型,直接用key + key是字符串拼接而非数值相加,且sum()函数用于对可迭代对象求和,用在拼接后的字符串上完全错误。
  2. 仅遍历单个键,没有处理两个不同键的组合,根本无法找到和为6的配对。
  3. f-string的格式写法错误,{key:dico}不是合法语法。

下面是修正后的代码,可实现你需要的功能:

dico = {'1': 0, '2': 1, '3': 2, '4': 3, '5': 4, '6': 5}
# 将字符串键转换为整数列表,方便数值计算
keys = list(map(int, dico.keys()))
# 遍历所有不重复的两两键组合
for i in range(len(keys)):
    for j in range(i + 1, len(keys)):
        key1, key2 = keys[i], keys[j]
        if key1 + key2 == 6:
            val1 = dico[str(key1)]
            val2 = dico[str(key2)]
            print(f"键{key1}和{key2}的和为6,对应的值是{val1}和{val2}")

代码说明:

  • 先把字典的字符串键转为整数列表,避免字符串拼接导致的计算错误。
  • 两层循环遍历不重复的两两组合(j从i+1开始,避免重复输出如(2,4)和(4,2)这类相同配对)。
  • 找到符合条件的组合后,将整数键转回字符串,从字典中取出对应值再格式化输出。

运行代码后会输出:

键1和5的和为6,对应的值是0和4
键2和4的和为6,对应的值是1和3

如果需要允许同一个键重复使用(比如键3加键3和为6),可将内层循环改为range(len(keys)),并根据需求决定是否保留i != j的判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 14:01:40