我想知道如何创建一个与lisp mapcar相同的python函数。
来自mapcar lisp文档: mapcar对列表的连续元素进行操作。功能是 …
使用 map ,还有一个添加运算符 operator.add :
map
operator.add
>>> import operator >>> list(map(operator.add, list1, list2)) [6, 6, 6, 6, 6]
来自 文件 。 map 将函数作为第一个参数,并将变量数作为 的 迭代 强> 参数。关键是函数应该采用与迭代次数一样多的参数 map 。这是唯一要考虑的“限制”。所以,例如:
map(lambda x: x+1, range(10)) map(lambda x, y: x+y, range(10), range(10)) map(lambda x, y, z: x+y+z, range(10), range(10), range(10))
等等...
它还可以采用用户定义的任何其他功能:
def checkString(s): return isinstance(s, str) and len(s) > 10 >>> list(map(checkString, ["foo", "fooooooooooooooooooooo"])) [False, True]
这可以通过这种方式实现: sumOfLists = map(sum, zip(list1, list2)) 您也不需要定义 sum 功能,因为它是内置的。
sumOfLists = map(sum, zip(list1, list2))
sum