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

Python遍历数组与字典匹配赋值:如何通过数组元素访问字典键

嘿,这问题其实很容易解决,我来一步步给你讲清楚!

首先先提个小建议:别用dict当变量名,这是Python的内置类型,用它当变量名会覆盖掉原本的功能,咱们换成my_dict更稳妥。

解决方案代码

先直接给你能跑通的代码,然后再解释细节:

# 初始数据
my_dict = {1:5, 2:5, 3:5}
arr = [1,2]

# 遍历字典的所有键,一次处理完
for key in my_dict:
    if key in arr:
        my_dict[key] = 0
    else:
        my_dict[key] += 1

# 输出结果
print("数组保持不变:", arr)
print("处理后的字典:", my_dict)

运行这段代码后,你会得到预期的结果:

  • 数组还是[1,2]
  • 字典变成{1:0, 2:0, 3:6}

关于你问的「用数组元素访问字典键」

其实你想的dict[i](这里就是my_dict[key])完全是对的!因为数组arr里的元素就是字典的键(都是整数类型),直接用数组里的元素作为索引去访问字典就行。

在上面的代码里,我们遍历字典的每个键key,判断这个键是否存在于数组arr中:

  • 如果存在,就把对应的值设为0;
  • 如果不存在,就把对应的值加1。

另一种分步处理的方式(更稳妥)

如果数组里可能包含字典没有的键,怕出现KeyError,可以分成两步处理:

my_dict = {1:5, 2:5, 3:5}
arr = [1,2]

# 第一步:处理数组里的键,设为0(先判断键是否存在)
for key in arr:
    if key in my_dict:
        my_dict[key] = 0

# 第二步:处理字典中不在数组里的键,值加1
for key in my_dict:
    if key not in arr:
        my_dict[key] += 1

这种方式先把数组里匹配的键处理完,再处理剩下的,逻辑更清晰,也能避免数组里有无效键时报错。

注意事项

  • 要保证数组元素的类型和字典键的类型一致,比如如果数组里是字符串"1",那和字典的整数键1是不匹配的,这点要留意;
  • 字典的键查找是O(1)的,所以不管用哪种方式,效率都很高,不用担心性能问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:14:31