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

Python如何对值为列表类型的字典按品牌、类型字段进行筛选

筛选操作实现方案

当然可以基于brand和type字段做筛选,你的字典中三个列表是按索引一一对应同一条数据的,只要匹配对应索引的字段条件即可,以下是两种实现方式:

原生Python实现(无需安装第三方库)

inventory = {
    "brand": ["bmw", "audi", "harley davidson"],
    "type": ["car", "car", "motorcycle"],
    "value": [100, 200, 150],
}

# 自定义筛选条件:此处示例筛选type为car、brand为audi的条目
target_type = "car"
target_brand = "audi"

# 第一步:筛选出符合条件的索引
valid_indexes = [
    i for i in range(len(inventory["brand"]))
    if inventory["type"][i] == target_type and inventory["brand"][i] == target_brand
]

# 第二步:根据有效索引生成新的筛选后字典
filtered_inventory = {
    key: [value[i] for i in valid_indexes]
    for key, value in inventory.items()
}

print(filtered_inventory)
# 输出结果:{'brand': ['audi'], 'type': ['car'], 'value': [200]}

如果需要调整筛选规则,直接修改valid_indexes里的判断条件即可,比如只筛选所有type为car的条目,去掉brand的判断条件就行。

Pandas实现(适合高频处理结构化数据场景)

如果经常需要做这类数据筛选、统计操作,可以用pandas库简化代码:

import pandas as pd

# 转换为DataFrame结构化格式
df = pd.DataFrame(inventory)
# 按条件筛选
filtered_df = df[(df["type"] == "car") & (df["brand"] == "audi")]
# 可选:转换回原字典格式
filtered_inventory = filtered_df.to_dict(orient="list")

print(filtered_inventory)
# 输出结果和原生实现一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:09:03