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

Python3:基于成员ID列表与已有字典生成各团队专属字典

没问题,这其实是Python里很常见的字典筛选需求,几种方法都能轻松实现,我给你整理了几个实用的方案:

先把你的原始数据放在这里方便参考:

team_A = [1,2,3,4,5]
team_B = [6,7,8,9,10]
team_C = [11,12,13,14,15]

dictionary = {5:23, 10:68, 15:68, 4:1, 9:37, 14:21, 3:987, 8:3, 13:14, 2:98, 7:74, 12:47, 1:37, 6:82, 11:99}
方法1:字典推导式(推荐,简洁高效)

这是Python里最优雅的写法,一行代码就能搞定,可读性和效率都很高:

team_A_values = {k: v for k, v in dictionary.items() if k in team_A}
team_B_values = {k: v for k, v in dictionary.items() if k in team_B}
team_C_values = {k: v for k, v in dictionary.items() if k in team_C}

解释一下:咱们遍历原始字典的每一个键值对,只保留那些键存在于对应团队ID列表的项,直接生成新的专属字典。运行后team_A_values就会得到你想要的{5:23, 4:1, 3:987, 2:98, 1:37}。

方法2:基础循环遍历(适合新手理解逻辑)

如果刚接触Python,想更清晰地看到每一步的操作,可以用循环来实现:

team_A_values = {}
for key, value in dictionary.items():
    if key in team_A:
        team_A_values[key] = value

这个逻辑很直观:先创建一个空字典,然后逐个检查原始字典的键,如果这个键在团队A的ID列表里,就把对应的键值对添加到新字典里。其他团队的写法完全一样,只需要把team_A换成team_B或team_C就行。

小优化:把列表转成集合提升效率

如果你的团队ID列表特别长(比如有成百上千个ID),建议先把列表转换成集合,因为Python里检查元素是否在集合里的速度比列表快很多:

team_A_set = set(team_A)
team_A_values = {k: v for k, v in dictionary.items() if k in team_A_set}

这个小改动在数据量大的时候能明显提升运行速度,平时用列表也没问题,只是给你个进阶小技巧~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:49:25