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

如何对Python dict的5个随机样本进行price值求和聚合?

问题解决方法

你遇到的问题是因为random.sample(mydict.items(), 5)返回的是元组列表,每个元素都是(键, 包含name和price的子字典),直接用sum()去加这些元组肯定会报错——Python没法把元组当成数值来求和。

修复方案1:直接处理采样后的元组列表

修改求和的代码,遍历每个采样到的元组,提取子字典里的price值再求和:

import random

mydict = {
    1: {"name":"item1","price": 16}, 
    2: {"name":"item2","price": 14},
    3: {"name":"item3","price": 16}, 
    4: {"name":"item4","price": 14}, 
    5: {"name":"item5","price": 13},
    6: {"name":"item6","price": 16},
    7: {"name":"item7","price": 11}, 
    8: {"name":"item8","price": 12}, 
    9: {"name":"item9","price": 14},
    10: {"name":"item10","price": 14},
}

randomlist = random.sample(mydict.items(), 5)
# 提取每个元组中子字典的price值求和
print(sum(item[1]['price'] for item in randomlist))

修复方案2:直接采样字典的值(更简洁)

如果不需要原字典的键,直接采样mydict.values()(也就是所有子字典),再提取price求和,代码更清爽:

import random

mydict = {
    1: {"name":"item1","price": 16}, 
    2: {"name":"item2","price": 14},
    3: {"name":"item3","price": 16}, 
    4: {"name":"item4","price": 14}, 
    5: {"name":"item5","price": 13},
    6: {"name":"item6","price": 16},
    7: {"name":"item7","price": 11}, 
    8: {"name":"item8","price": 12}, 
    9: {"name":"item9","price": 14},
    10: {"name":"item10","price": 14},
}

# 直接采样子字典列表
random_values = random.sample(mydict.values(), 5)
print(sum(v['price'] for v in random_values))

两种方案都能正确计算5个随机条目的price总和,选哪种看你是否需要保留原字典的键。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 11:10:24