如何在python中找到列表的中间值
我试图找到一个列表的中间值。我试过两种方法,但都不起作用(我已经导入了我需要的东西,列表就在那里)自拍是列表的名称如何在python中找到列表的中间值,python,Python,我试图找到一个列表的中间值。我试过两种方法,但都不起作用(我已经导入了我需要的东西,列表就在那里)自拍是列表的名称 def median(): return numpy.median(numpy.array(selfies)) 这就是错误所在 ret=umr_和(arr、轴、数据类型、out、keepdims) TypeError:无法使用灵活类型执行reduce 另一种方式是 def median(): med = statistics.median(selfies)
def median():
return numpy.median(numpy.array(selfies))
这就是错误所在
ret=umr_和(arr、轴、数据类型、out、keepdims)
TypeError:无法使用灵活类型执行reduce
另一种方式是
def median():
med = statistics.median(selfies)
return med
错误是
返回(数据[i-1]+数据[i])/2
TypeError:/:“str”和“int”的操作数类型不受支持
提前感谢使用.sort()或.sorted()根据您的需要对列表进行排序,
然后检索列表[math.floor(len(list)/2)]
如果不需要排序,只需要中间值,请使用
list[math.floor(len(list)/2)].
你好,用户9123, Medain()函数的主要用法
此模块提供用于计算数值(实值)数据的数理统计的函数 注意除非另有明确说明,否则这些函数支持int、float、decimal.decimal和fractions.Fraction。当前不支持其他类型(无论是否在数字塔中)的行为。混合类型也未定义且依赖于实现。如果输入数据由混合类型组成,则可以使用map()确保结果一致,例如map(float,input_data) 你的问题
当您对字符串使用此函数时,它有时无法正常工作,因此我建议您使用自定义函数。我在下面的代码中给出了解决方案 解释函数中值()
统计。中位数(数据) 使用常用的“中间两个平均值”方法返回数值数据的中间值(中间值)。如果数据为空,则会引发统计错误。数据可以是序列或迭代器 中位数是中心位置的可靠度量,受数据中异常值的影响较小。当数据点数为奇数时,返回中间数据点: 问题的解决
如果您将此函数用于数值,请尝试下面的代码
def getMedian(numericValues):
theValues = sorted(numericValues)
if len(theValues) % 2 == 1:
return theValues[(len(theValues)+1)/2-1]
else:
lower = theValues[len(theValues)/2-1]
upper = theValues[len(theValues)/2]
return (float(lower + upper)) / 2
print getMedian([0,1,2,3,4,5]) # output = 2.5
如果要对字符串使用中值函数,请尝试下面的代码
def medianFind(mystring):
return mystring[(len(mystring)-1)/2] #len returns the length of the string
print medianFind("vmr") #prints m
我希望我的回答能有所帮助。如果有任何查询,请发表评论。可能重复的是
自拍
?您的输入中似乎有字符串。这就是我想确认的,在我看来是错误消息。要问一个好问题,您应该阅读:错误消息不是由中位数本身的计算,而是由数据类型决定的。你的答案没有回答OP。你好,eyllanesc先生,首先你展示我的答案,我用另一个答案给出解决方案。那么为什么要否决我的投票。你是专家,所以在不更新我的答案后给出第一个评论,所以给出否决票。如果问题像是找到浮点或整数(数字元素)列表的中值,你的答案是正确的,但事实并非如此,您可以咨询作者并询问信息。错误信息不是由中值本身的计算得出的,而是由数据类型得出的。你的答案与事实不符OP@eyllanesc但是使用.sort()之后,他可以使用自己的比较方法进行排序(这似乎比声明cmp或eq更容易,特别是如果对象是从外部库导入的),那么这难道不能解决他的问题吗?最终,我的印象是他在寻找中间值,他的问题在于numpy库和他使用的数据类型,但由于中间值并不太复杂,我只是建议他手动操作,因为使用我的方法可能会解决TypeError。如果列表是字符串,您的解决方案会回答这个问题吗?例如l=['1','2','3','4']
@eyllanesc Yes确实是:l.sorted(l,key=lambda x:int(x)),然后获取中值(假设int()不抛出错误,所有字符串都可以转换为int)。您还可以使用其他比较“标准”,如ASCII或世界上任何您可以想到的标准,只要它允许有效的比较。它还可以处理其他数据类型。