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

如何提取列表中字典内以price开头的键对应的值?

解决提取列表字典中以price开头的键对应值的问题

嘿,我来帮你搞定这个麻烦!你说用startswith()没生效,大概率是遍历字典的方式出了问题,我给你针对你提供的示例数据写了两种可行的实现方案:

方法1:分步循环(更易理解和调试)

这种方式步骤清晰,适合刚接触这类操作的场景:

# 你的原始数据列表
data = [
    {'dateandtime-ecf9af72-7af8-447e-a071-2ababb0eb139': DatetimeWithNanoseconds(2019, 12, 30, 9, 34, 19, 297000, tzinfo=<UTC>), 
     'price-4a589779-264a-4396-a527-8fa7067f4c2d': 35.56,
     'price': 0,
     # 省略其他键值对...
    },
    # 省略其他字典...
]

# 用来存储提取到的价格值
price_values = []

# 遍历列表中的每个字典
for dict_item in data:
    # 遍历当前字典的所有键值对
    for key, value in dict_item.items():
        # 判断键是否以'price'开头,是就把值加入列表
        if key.startswith('price'):
            price_values.append(value)

# 输出结果
print(price_values)

方法2:嵌套列表推导式(更简洁)

如果你喜欢更紧凑的代码,用嵌套列表推导式一行就能搞定:

price_values = [value for dict_item in data for key, value in dict_item.items() if key.startswith('price')]

为什么你的startswith()没生效?

大概率是这几个原因:

  • 你可能误把值当成键来调用startswith()了(比如写了value.startswith('price')),而你的值是数字或时间类型,根本没有这个方法;
  • 你可能只遍历了列表中的某一个字典,没循环处理所有字典;
  • 你可能没正确遍历字典的键值对,比如只遍历了键但没获取对应的值。

运行上面的代码后,你就能得到所有以price开头的键对应的数值,包括示例里的35.56、0、10.16这些啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:11:44