文章内容

2022/1/8 11:37:18,作 者: 黄兵

Python min 包含 0 相关问题


最近在对一个数据进行排序,求最大数和最小数,具体代码如下:

def __init__(self, ping_list):
# 延迟数据数组
self._ping_list = ping_list

def calc(self):
# 平均延迟,保留2位小数
avg_time = round(self.average(), 2)
# 丢包率,保留两位小数
get_counter = Counter(self._ping_list)
packet_loss_rate = round(get_counter[0] / len(self._ping_list), 2)
ping_max = max(self._ping_list)
# fix min=0
ping_min = min(self.delete_lost_packet_data())
ping_median = round(statistics.median(self.delete_lost_packet_data()), 2)
result_dict = {'avg_time': avg_time, 'packet_loss_rate': packet_loss_rate, 'max': ping_max, 'min': ping_min,
'median': ping_median}
return result_dict

def average(self):
lst = self.delete_lost_packet_data()
return sum(lst) / len(lst)

def delete_lost_packet_data(self):
# 删除丢包数据
temp_list = [item for item in self._ping_list]
return temp_list

这里面求最小数的时候包含 0,会出现这个问题:


这些数据存在都不合理,应该去掉最小数为 0 的情况,具体代码如下:

ping_min = min(filter(lambda x: x > 0, self.delete_lost_packet_data()))

上面使用了一个过滤器,同时使用了 lambda 表达式,值 >0。

最后截图如下:



参考资料:

1、Find min value in array > 0


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - Python min 包含 0 相关问题

分享到:

发表评论

评论列表