求中位数函数Python
时间: 2024-05-24 11:09:34 浏览: 26
在Python中,可以使用sort()函数对列表进行排序,然后根据列表长度的奇偶性来确定中位数。如果列表长度是奇数,则中位数是排序后的列表的中间值;如果列表长度是偶数,则中位数是排序后的列表中间两个值的平均数。
以下是一个求中位数的Python函数示例:
```python
def median(nums):
nums.sort()
n = len(nums)
if n % 2 == 0:
return (nums[n//2-1] + nums[n//2]) / 2
else:
return nums[n//2]
```
相关问题
python中位数函数
使用Python内置函数可以实现求解任意数字序列的中位数。其中常用的方法有:
1. 排序法:将序列排序,然后取中位数。
2. 快速选择法:类似快速排序,每次选择一个元素作为基准值,将序列分成两部分,不断递归,最后找到中位数。
这两种方法在Python中都非常容易实现,代码如下:
1. 排序法:
```python
def findMedian(arr):
arr.sort()
n = len(arr)
if n % 2 == 0:
return (arr[n//2-1] + arr[n//2])/2
else:
return arr[n//2]
```
2. 快速选择法:
```python
def findMedian(arr):
def select(arr, l, r, k):
if l == r:
return arr[l]
i = partition(arr, l, r)
if k == i:
return arr[i]
elif k < i:
return select(arr, l, i-1, k)
else:
return select(arr, i+1, r, k)
def partition(arr, l, r):
pivot = arr[r]
i, j = l, r-1
while i <= j:
if arr[i] <= pivot:
i += 1
else:
arr[i], arr[j] = arr[j], arr[i]
j -= 1
arr[i], arr[r] = arr[r], arr[i]
return i
n = len(arr)
if n % 2 == 0:
return (select(arr, 0, n-1, n//2-1) + select(arr, 0, n-1, n//2))/2
else:
return select(arr, 0, n-1, n//2)
```
python用函数求列表中位数
可以先将列表排序,然后根据列表长度的奇偶性来分别计算中位数。如果列表长度为奇数,中位数即为排序后的中间元素;如果列表长度为偶数,中位数为排序后中间两个元素的平均值。
以下是一个示例代码:
```python
def median(lst):
sorted_lst = sorted(lst)
lst_len = len(lst)
mid = lst_len // 2
if lst_len % 2 == 0:
return (sorted_lst[mid - 1] + sorted_lst[mid]) / 2
else:
return sorted_lst[mid]
# 示例
lst = [1, 3, 5, 7, 9]
print(median(lst)) # 输出 5
lst = [1, 2, 3, 4, 5, 6]
print(median(lst)) # 输出 3.5
```