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

如何对Python字典的列表值执行指定数学运算?求助修正报错代码

问题分析

原代码执行失败的核心问题:

  • 字典a的每个值是列表类型,但你直接对整个列表v执行数学运算,math.log2无法直接作用于列表,会触发类型错误
  • 未遍历列表内的单个元素,无法实现对每个值的公式转换
正确实现代码

需要针对字典中每个键对应的列表元素逐个计算:

import math

a = {1: [1, 2, 5], 2: [5, 3, 1], 3: [9, 8, 7]}

# 遍历每个键值对,对列表内的每个元素执行公式运算
c = {
    k: [x * math.log2(1/x) for x in v]
    for k, v in a.items()
}

print(c)
补充说明
  • 若需要将计算结果转为整数(和你原代码的int()逻辑一致),可修改内层推导式为int(x * math.log2(1/x)),注意当x>1时计算结果为负数,int()会向下取整
  • 当x=1时,math.log2(1/1)=0,计算结果为0,逻辑合法无需额外处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 16:12:02