python求中位数的函数
时间: 2024-10-16 07:03:55 浏览: 20
在Python中,计算一组数值的中位数通常有几种方法。如果你有一组数字已经存储在一个列表里,可以使用内置的`sorted()`函数结合`len()`和索引来找到中位数。这里是两种常见的方式:
1. **对于长度为奇数的列表**:
```python
def median(lst):
sorted_lst = sorted(lst)
n = len(sorted_lst)
return (sorted_lst[n // 2] if n % 2 == 1 else (sorted_lst[n // 2 - 1] + sorted_lst[n // 2]) / 2)
# 示例
numbers = [1, 4, 6, 8, 9]
print(median(numbers))
```
2. **对于长度为偶数的列表**:
```python
def median_even_length(lst):
sorted_lst = sorted(lst)
n = len(sorted_lst)
mid = n // 2
return (sorted_lst[mid - 1] + sorted_lst[mid]) / 2
# 示例
numbers = [2, 5, 7, 10, 11]
print(median_even_length(numbers))
```
注意,如果列表很大,使用`heapq`模块的`nlargest`和`nsmallest`方法可能会更快,因为它们不需要完全排序。
阅读全文