在Python中查找列表的中位数
有时,在使用Python列表时,我们可能会遇到需要查找列表中位数的问题。这个问题在数学领域和通用计算中很常见。让我们讨论可以执行此任务的某些方式。
方法#1:使用循环+ "~"
运算符
可以使用上述功能的组合以蛮力方式执行此任务。在此,我们对列表进行排序,并通过使用“~”运算符的属性进行取反,我们从前后访问列表,执行查找中位数所需的计算。
# Python3 code to demonstrate working of
# Median of list
# Using loop + "~" operator
# initializing list
test_list = [4, 5, 8, 9, 10, 17]
# printing list
print("The original list : " + str(test_list))
# Median of list
# Using loop + "~" operator
test_list.sort()
mid = len(test_list) // 2
res = (test_list[mid] + test_list[~mid]) / 2
# Printing result
print("Median of list is : " + str(res))
输出 :
The original list : [4, 5, 8, 9, 10, 17]
Median of list is : 8.5
方法 #2:使用statistics.median()
这是执行此任务的最通用方法。在此我们直接使用内置函数来执行列表的中位数。
# Python3 code to demonstrate working of
# Median of list
# Using statistics.median()
import statistics
# initializing list
test_list = [4, 5, 8, 9, 10, 17]
# printing list
print("The original list : " + str(test_list))
# Median of list
# Using statistics.median()
res = statistics.median(test_list)
# Printing result
print("Median of list is : " + str(res))
输出 :
The original list : [4, 5, 8, 9, 10, 17]
Median of list is : 8.5