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

Python如何过滤字典,实现条件匹配替代if elif多分支逻辑?

实现方法

你给定的data字典中name、age、gender三个列表的索引是一一对应的,找到选中姓名在name列表中的索引,再用该索引从另外两个列表取值即可。

基础实现(适配无重名场景,和原有if逻辑效果一致)

name_selected = "Jason"
data = {"name": ["John", "Jason"],
        "age": [10, 20],
        "gender": ["Male", "Male"]}

if name_selected in data["name"]:
    # 获取匹配姓名的索引
    match_idx = data["name"].index(name_selected)
    age = data["age"][match_idx]
    gender = data["gender"][match_idx]
    print(age, gender)
else:
    print(f"未找到姓名为{name_selected}的记录")

运行上述代码会输出20 Male。

兼容重名场景的实现

如果存在多个同姓名的记录,index()方法只会返回第一个匹配项的索引,要获取所有匹配项可以遍历索引筛选:

name_selected = "Jason"
data = {"name": ["John", "Jason"],
        "age": [10, 20],
        "gender": ["Male", "Male"]}

matched = []
for idx, name in enumerate(data["name"]):
    if name == name_selected:
        matched.append({
            "age": data["age"][idx],
            "gender": data["gender"][idx]
        })

# 输出所有匹配结果
for item in matched:
    print(item["age"], item["gender"])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 16:45:04