请用python的3种不同方法编写一个函数,该函数接收一个列表参数,返回该列表的中位数,最后在主程序中测试该函数。
时间: 2024-02-16 12:05:32 浏览: 27
好的,以下是3种不同的方法来编写符合您要求的python函数代码:
方法1:使用Python内置的statistics模块
```python
import statistics
def median(lst):
"""
该函数接收一个列表参数,返回该列表的中位数
"""
return statistics.median(lst)
# 测试代码
if __name__ == "__main__":
lst = [1, 2, 3, 4, 5]
print(median(lst)) # 输出 3
lst = [1, 2, 3, 4, 5, 6]
print(median(lst)) # 输出 3.5
```
方法2:使用numpy模块
```python
import numpy as np
def median(lst):
"""
该函数接收一个列表参数,返回该列表的中位数
"""
return np.median(lst)
# 测试代码
if __name__ == "__main__":
lst = [1, 2, 3, 4, 5]
print(median(lst)) # 输出 3.0
lst = [1, 2, 3, 4, 5, 6]
print(median(lst)) # 输出 3.5
```
方法3:手动计算
```python
def median(lst):
"""
该函数接收一个列表参数,返回该列表的中位数
"""
lst = sorted(lst)
n = len(lst)
if n % 2 == 0:
return (lst[n//2-1] + lst[n//2]) / 2
else:
return lst[n//2]
# 测试代码
if __name__ == "__main__":
lst = [1, 2, 3, 4, 5]
print(median(lst)) # 输出 3
lst = [1, 2, 3, 4, 5, 6]
print(median(lst)) # 输出 3.5
```
主程序中我们定义了一个列表lst,然后调用三个不同的函数来计算该列表的中位数。程序的输出结果分别为3、3.5和3、3.5和3、3.5,分别对应于输入列表[1, 2, 3, 4, 5]和[1, 2, 3, 4, 5, 6]的中位数。