这是一个基于太阳测量系统的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 理解删除零,然后使用 min
和 max
函数。
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)