【发布时间】:2017-10-15 20:55:48
【问题描述】:
我有一个看起来像这样的列表:
trial_lst = [0.5, 3, 6, 40, 90, 130.8, 129, 111, 8, 9, 0.01, 9, 40, 90, 130.1, 112, 108, 90, 77, 68, 0.9, 8, 40, 90, 92, 130.4]
该列表代表一系列实验,每个实验都有一个最小值和一个最大值。例如,在上面的列表中,最小值和最大值如下:
Experiment 1:
Min: 0.5
Max: 130.8
Experiment 2:
Min: 0.01
Max: 130.1
Experiment 3:
Min: 0.9
Max: 103.4
我获得了上述每个实验的值,因为我知道每个 实验从 0 左右开始(例如 0.4、0.001、0.009 等),在 130 左右结束(130、131.2、130.009 等)。你可以想象一个喷嘴打开和关闭。当它打开时,压力上升,当它关闭时,压力下降。我正在尝试计算每个实验的最小值和最大值。
到目前为止,我尝试的是遍历列表以首先将每个索引标记为最大值,但我似乎无法做到这一点。
这是我的代码。关于如何更改它的任何建议?
for idx, item in enumerate(trial_lst):
if idx > 0:
prev = trial_lst[idx-1]
curr = item
if prev > curr:
result.append((curr, "max"))
else:
result.append((curr, ""))
我正在寻找一种手动方式来执行此操作,没有库。
【问题讨论】:
-
max((a,i) for (i,a) in enumerate(trial_lst))和min((a,i) for (i,a) in enumerate(trial_lst))将为您提供最大/最小值及其索引,但我看不出这些实验是如何相关的。 -
感谢您的建议,但这只会返回最小值及其索引
-
您的问题标题与您的要求不符。另外,您列表中不同实验的面额在哪里???
-
有点不清楚你在问什么。是否要以某种方式拆分试用列表?
-
请准确解释您是如何获得实验 1、2 和 3 的值的。