python 取中位数
时间: 2024-11-13 07:17:40 浏览: 22
在 Python 中,获取列表或其他有序序列的中位数有多种方法。这里提供一种简单直接的方式:
如果你有一个已排序的列表,你可以直接通过索引来找到中位数。如果列表长度是奇数,那么中位数就是位于中间位置的元素;如果是偶数,则中位数是中间两个元素的平均值。
```python
def find_median(lst):
n = len(lst)
if n % 2 == 0:
# 如果列表长度是偶数
median = (lst[n // 2] + lst[(n // 2) - 1]) / 2
else:
# 如果列表长度是奇数
median = lst[n // 2]
return median
# 示例
nums = [1, 2, 3, 4, 5]
median_num = find_median(nums)
print("中位数:", median_num)
```
如果你不确定列表是否已经排序,可以先对列表进行排序,然后再计算中位数:
```python
import statistics
def find_median_sorted(lst):
sorted_lst = sorted(lst)
n = len(sorted_lst)
if n % 2 == 0:
median = statistics.median(sorted_lst)
else:
median = sorted_lst[n // 2]
return median
nums = [5, 1, 4, 3, 2]
median_num = find_median_sorted(nums)
print("中位数:", median_num)
```
在这个例子中,我们使用了 `statistics.median()` 函数来处理排序后的列表。
阅读全文