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

Python 3.12中获取首元素为指定值的字典键的Pythonic方法

更Pythonic的字典键筛选实现

你可以用列表推导式来简化代码,这是Python中处理这类筛选场景的惯用写法,比显式循环更简洁紧凑,可读性也更强:

def matching_keys(d: dict[tuple[int, int], int], n: int) -> list[tuple[int, int]]:
    """
    找出字典*d*中所有首元素为整数*n*的键

    :param d: 目标字典
    :type d: dict[tuple[int, int], int]
    :param n: 待匹配的键首元素值
    :type n: int
    :return: 所有首元素为*n*的键组成的列表
    """
    return [key for key in d if key[0] == n]

写法说明

  • 直接遍历字典本身(for key in d)就能拿到所有键,无需显式调用d.keys(),Python中遍历字典默认就是遍历键
  • 列表推导式把循环、判断、收集结果的逻辑整合在一行,契合Python“简洁直观”的风格
  • 完整保留了原有的类型注解,符合Python 3.12的类型规范

如果你的字典需要频繁按首元素查询,还可以预先把键按首元素分组存储,适合多次查询的场景:

from collections import defaultdict

# 预先按首元素分组
grouped_keys = defaultdict(list)
for key in d:
    grouped_keys[key[0]].append(key)

# 后续查询直接获取,不存在则返回空列表
result = grouped_keys.get(n, [])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 02:22:43