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

如何用生成器表达式筛选字典中满足条件的键值对?

解决生成器表达式筛选字典键值对的语法错误

你的代码触发SyntaxError的原因很明确:生成器表达式中返回的键值对元组没有用括号包裹。Python语法规则里,生成器表达式如果要产出元组,必须显式用小括号把元组括起来,否则解释器会把key, value解析成两个独立的表达式,直接触发语法错误。

修改后的正确代码如下:

guests = {'Jane': 35, 'Kyle': 20, 'Justin': 43, 'Ayla': 22}

# 给key, value加上小括号,明确是元组类型的产出项
age_check = ((key, value) for key, value in guests.items() if value >= 21)
for guest in age_check:
    print(guest)

运行这段代码会输出:

('Jane', 35)
('Justin', 43)
('Ayla', 22)

如果你最终想要的是一个筛选后的字典,也可以直接用字典推导式(比生成器转字典更高效):

filtered_guests = {key: value for key, value in guests.items() if value >= 21}
print(filtered_guests)  # 输出: {'Jane': 35, 'Justin': 43, 'Ayla': 22}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 14:05:35