【发布时间】:2026-01-20 10:35:01
【问题描述】:
提前道歉,因为我对这一切都很陌生,我不确定所有内容的正确条款。
我有两个列表之间的差异列表,称为Change。我想生成一个百分比变化列表Percentage,方法是将Change 中的每个值除以它引用的列表(Before 和After)中相应值的最大值。如果使用了错误的值,在某些情况下百分比变化会显示为 -660%。
Before 和 After 是通过 PIL 从图像文件生成的,但输出的一小部分如下。
Before = [135,160,199,]
After = [146,174,176,]
Change = list(After-Before for Before,After in zip(Before,After))
PercentageA = list(Change/After*100 for After,Change in zip(After,Change))
PercentageB = list(Change/Before*100 for Before,Change in zip(Before,Change))
for x in Change:
if x <0:
Percentage = PercentageA
else:
Percentage = PercentageB
print(Percentage)
此代码生成:
In [1]:
[8.148148148148149, 8.75, -11.557788944723619]
[8.148148148148149, 8.75, -11.557788944723619]
[7.534246575342466, 8.045977011494253, -13.068181818181818]
但是,结果应该是:
[7.534246575342466, 8.045977011494253, -11.557788944723619]
我的主要问题是;对于列表中的每个值,如何将Change 除以Before 和After 的最大值生成Percentage 列表?
编辑:减少和概括了一些代码,并删除了背景。为提供太多背景而道歉。 Edit2:很抱歉误解了我的要求。
【问题讨论】: