Python - 列表的中值
Python - median value of a list
def median(x):
if range(1, len(x))%2!=0:
sorted(x)
listlength = range(1, len(x)+1)
num = listlength / 2
middlenum = x[num]
else:
sorted(x)
listlength = range(1, len(x))
num = listlength / 2
num2 = num + 1
middlenum = x[num2 + num / 2]
return middlenum
这是我的代码,我需要找到列表 (x) 的中值,但出现此错误:
"Oops, try again. median([1]) resulted in an error: unsupported operand type(s) for %: 'list' and 'int' "
我真的不知道该怎么做,请帮忙。
range(1, len(x))
是可迭代的。它不能被数字除,2
就是这种情况。
我相信你只是想使用 if len(x) % 2:
。
另外,sorted(x)
会returnx
排序,而不是排序。对于该任务,您有 x.sort()
.
如果你只想找到一个中位数,使用内置的 statistics.median
:
>>> import statistics
>>> statistics.median([1, 2, 3])
2
否则,请参阅 that 答案。
您还可以使用 NumPy 的内置函数,这可能会更快。
import numpy as np
def median(x):
return np.median(np.array(x))
NumPy 有一整套基于数组的数据分析函数,例如 Mean、Mode、Range、Standard Deviation 等:https://docs.scipy.org/doc/numpy/reference/routines.statistics.html
希望对您有所帮助!
在这个程序中,首先用户将取五个 values.Then 值将被排序并给出中位数 value.It 还将打印与 median.So 相比的较大值和较小值,这是您将获得中值的代码。
a = [int(x) for x in input().split()]
p,q,r,s,t=a
w=a.sort()
median=a[2]
l=a[3],a[4]
m=a[0],a[1]
print("Median is : %i" %median)
print("The larger values are: %i %i" %l)
print("The smaller values are: %i %i" %m)
如果用户想要获取多个值,则代码为:
import statistics
a = [int(x) for x in input().split()]
w=a.sort()
median=statistics.median(a)
print("Median is : %.2lf" %median)
def median(x):
if range(1, len(x))%2!=0:
sorted(x)
listlength = range(1, len(x)+1)
num = listlength / 2
middlenum = x[num]
else:
sorted(x)
listlength = range(1, len(x))
num = listlength / 2
num2 = num + 1
middlenum = x[num2 + num / 2]
return middlenum
这是我的代码,我需要找到列表 (x) 的中值,但出现此错误:
"Oops, try again. median([1]) resulted in an error: unsupported operand type(s) for %: 'list' and 'int' "
我真的不知道该怎么做,请帮忙。
range(1, len(x))
是可迭代的。它不能被数字除,2
就是这种情况。
我相信你只是想使用 if len(x) % 2:
。
另外,sorted(x)
会returnx
排序,而不是排序。对于该任务,您有 x.sort()
.
如果你只想找到一个中位数,使用内置的 statistics.median
:
>>> import statistics
>>> statistics.median([1, 2, 3])
2
否则,请参阅 that 答案。
您还可以使用 NumPy 的内置函数,这可能会更快。
import numpy as np
def median(x):
return np.median(np.array(x))
NumPy 有一整套基于数组的数据分析函数,例如 Mean、Mode、Range、Standard Deviation 等:https://docs.scipy.org/doc/numpy/reference/routines.statistics.html
希望对您有所帮助!
在这个程序中,首先用户将取五个 values.Then 值将被排序并给出中位数 value.It 还将打印与 median.So 相比的较大值和较小值,这是您将获得中值的代码。
a = [int(x) for x in input().split()]
p,q,r,s,t=a
w=a.sort()
median=a[2]
l=a[3],a[4]
m=a[0],a[1]
print("Median is : %i" %median)
print("The larger values are: %i %i" %l)
print("The smaller values are: %i %i" %m)
如果用户想要获取多个值,则代码为:
import statistics
a = [int(x) for x in input().split()]
w=a.sort()
median=statistics.median(a)
print("Median is : %.2lf" %median)