我试图找到二维数组的每一行的中位数。这是我到目前为止所尝试过的,但我无法让它发挥作用。任何帮助将不胜感激。
def median_rows(list):
for lineindex in range(len(Matrix)):
sorted(Matrix[lineindex])
mid_upper = ((len(Matrix[lineindex]))/2
mid_lower = ((len(Matrix[lineindex])+1)/2
if len(Matrix[lineindex])%2 == 0:
#have to take avg of middle two
median = (Matrix[mid_lower] + Matrix[mid_upper])/2.0
print "The median is %f" %median
else:
median = srtd[mid]
print "The median is %d" %median
median_rows(Matrix)
答案 0 :(得分:1)
答案 1 :(得分:0)
首先,明确的变量命名错误:Matrix
未定义。您可能意味着list
,或者您打算将函数参数命名为Matrix
。因为有Python数据类型list
,所以btw list
不是一个好的变量名。另外,Matrix
也不是一个好名字,因为将变量名称设为小写是一种很好的做法。此外,srtd
未定义。
更正命名错误后,下一个问题是sorted(xyz)
不会修改xyz
,但会返回xyz
的已排序副本。所以你需要将它分配给某些东西。好吧,不要将它分配回Matrix[lineindex]
,因为这样功能会产生改变传递给它的输入矩阵的不良副作用。
答案 2 :(得分:0)
这应该可以帮助你。正如@Rishi所说,有很多变量名称问题。
liftIO $ setSGR [SetColor Foreground Vivid Green]
putNormal "[\175] Compiling "
liftIO $ setSGR [SetColor Foreground Vivid Yellow]
putNormal $ c ++ "\n"
liftIO $ setSGR [Reset]