Using map in Python -


i'm trying use map python function (i know can use list comprehension instructed use map in example) take row average of 2 row matrix.

here think answer should like:

def average_rows2(mat):     print( map( float(sum) / len , [mat[0],mat[1]] ) ) average_rows2([[4, 5, 2, 8], [3, 9, 6, 7]]) 

right now, sum function works:

def average_rows2(mat):     print( map( sum , [mat[0],mat[1]] ) ) average_rows2([[4, 5, 2, 8], [3, 9, 6, 7]]) 

the first problem adding float() sum function gives error:

typeerror: float() argument must string or number 

which weird because elements of resulting list should integers since calculates sum.

also, adding / len sum function gives error:

typeerror: unsupported operand type(s) /: 'builtin_function_or_method' , 'builtin_function_or_method' 

for error, tried * , // , says none supported operand types. don't understand why none of these supported.

maybe means map function doesn't take composite functions?

the first argument has evaluated before can passed map. this:

float(sum) / len 

is causing various errors doesn't make sense evaluate on own (unless you'd shadowed sum , len, different problem). trying sum on 1 built-in function divide another! therefore cannot argument.

instead, make function, e.g.:

lambda lst: float(sum(lst)) / len(lst) 

this callable single argument, therefore can used first argument map, apply each element in second argument. use regular function, rather anonymous lambda (as shown in https://stackoverflow.com/a/34831192/3001761).


Comments

Popular posts from this blog

get url and add instance to a model with prefilled foreign key :django admin -

css - Make div keyboard-scrollable in jQuery Mobile? -

ruby on rails - Seeing duplicate requests handled with Unicorn -