【发布时间】:2023-03-28 10:53:01
【问题描述】:
我知道标题可能令人困惑,所以请允许我解释一下。
我从一个看起来像 L = [21.123, 22.123, 23.123, 21.123] 的列表中获取输入
我删除了小数,并将列表从高到低排序。我还把它改成了一个字典,看起来像
newlist = {23: 1, 22: 1, 21: 2}
我需要做的是列出我可以做的键和值的列表。这给了我两个列表,[23, 22, 21] 和 [1, 1, 2] 一个用于值,一个用于事件。我需要将我的出现列表转换为与相应键相同或低于它的出现次数。
我希望我的列表看起来像 [23, 22, 21](这很容易做到)和 [4, 3, 2],因为其中 4 次是 23 秒或更短,3 次是 22 秒或更短,还有 2 次时间为 21 秒或更短。
我很确定我需要一个 for 循环来遍历每个频率值,并将该值更改为输入到列表中的总次数,然后减去任何超过它的值。我不知道该怎么做,所以任何帮助将不胜感激。
【问题讨论】:
-
你尝试过什么,到底有什么问题?
-
提示:使用累积和。
-
对于您的第一个问题,请尝试使用标准库集合模块
collections.Counter(map(int, [21.123, 22.123, 23.123, 21.123]))中的 Counter。在此处提问时,请避免同时提出多个问题,并包含您的尽力而为的代码。即使您的代码不起作用,它也可以帮助我们准确了解您想要做什么。 -
我试图弄清楚如何计算出现次数多于相应的键,所以如果我在 valuelist 中对应于 22 出现次数的值上,我不不知道如何计算数字 22-min 值出现的次数,并排除 1 次 23 出现的次数。然后从总次数中减去超过对应键的数量,即4(总次数)减1(一次> 22秒)
-
老实说,很难说出
[4, 3, 2]是什么。 “4 次是 23 秒或更短” 到底是什么意思?
标签: python python-3.x list dictionary for-loop