文章内容
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。
最后截图如下:
参考资料:
黄兵个人博客原创。
转载请注明出处:黄兵个人博客 - Python min 包含 0 相关问题
评论列表