python - 在 python 中的 list 中查找大于 0 的第一个和最后一个 value

这是一个基于太阳测量系统的list,所以在一天的前几个小时它将是0,在一天的最后几个小时它将是0,所以我有兴趣获得最小值和最大值value大于 0;例子:

total_solar=[0,0,0,0,0,100,200,200,300,200,200,120,0,0,0,0,0]

回答1

您可以使用 list 理解删除零,然后使用 minmax 函数。

total_solar=[0,0,0,0,0,100,200,200,300,200,200,120,0,0,0,0,0]
non_zero = [i for i in total_solar if i]
min_val = min(non_zero)
max_val = max(non_zero)

回答2

我鼓励你自己尝试,你通过编程学习编程。这绝对看起来像编程练习。

但是这里有另一种对初学者来说更简单的解决方案。

total_solar=[0,0,0,0,0,100,200,200,300,200,200,120,0,0,0,0,0]
min_non_zero = -1 # init value
max_non_zero = -1 # init value

for element in total_solar:
    if element != 0: # in python if 0 give False so you could use use if element
        if min_non_zero < 0  or element < min_non_zero:
            min_non_zero = element
        if max_non_zero < 0 or element > max_non_zero:
            max_non_zero = element

print(min_non_zero, max_non_zero)

100 300

回答3

使用生成器理解过滤 values,例如

max(v for v in total_solar if v > 0)

相似文章

随机推荐

最新文章