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

Python:如何获取字典列表中Year属性的首个出现值

解决方法

先说说你之前代码的问题:

  • 第一个代码里用hasattr(x,'Year')是错误的,字典的键不属于对象属性,判断字典是否包含某个键应该用'Year' in x,所以你之前的列表推导式会生成空列表,自然触发索引越界错误。
  • 第二个循环里的any('Year' in x for x in dataset)犯了变量名冲突的问题:生成器里的x覆盖了外层循环的x,导致每次都是检查整个数据集里是否存在Year,而非当前遍历的元素,所以所有输出都是True。

要获取首次出现的Year值,单行代码推荐用next()配合生成器表达式——它找到第一个符合条件的元素就会停止遍历,比列表推导式更高效:

next(x['Year'] for x in dataset if 'Year' in x)

如果担心数据集里可能没有任何带Year的元素,怕抛出StopIteration错误,可以给next()加个默认值:

next((x['Year'] for x in dataset if 'Year' in x), None)

这样找不到时会返回None,不会报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 22:40:57