我正在学习python,当时我正在摆弄lambda表达式和列表理解,这时我意识到:
>>> list(map(lambda x: x*x, [1,2]))
输出>>> 1,4但是
>>> list(map(lambda (x): x*x, [1,2]))
显示指向x左右括号的错误
lambda表达式的参数列表中似乎不能有括号。(在python3.x中签入)
现在我想问一下,如果不能在lambda表达式中的参数周围添加括号,那么如何使用map和lambda表达式来处理元组呢。例如:>>> records = [('bob', 35, 'manager'), ('sue', 40, 'developer')]
>>> list(map((lambda (name, age, job): age), records))
此语句显示语法错误,指示name参数之前的括号。然后我尝试了一个没有括号的表达式:
>>> list(map((lambda name, age, job: age), records))
但此语句还显示一个错误,该错误指出lambda表达式需要3个参数,但只提供了1个参数。在
我得到map函数从records列表中取出一个完整的记录元组并将其传递给lambda函数,lambda function将整个元组记录作为name参数的参数。在
我想知道,如何处理lambda表达式中的元组。另外,请告诉我为什么在《学习python》(marklutz的《学习python》)这本书中写得这么好?是针对python2.x的吗?我是python新手。提前谢谢。在