1
str(reduce(lambda x, y: x * y, range(1, 11))) -> this returns 10! or '3628800'

在不创建for循环的情况下,如何将此函数作为一位整数列表映射到另一个函数:例如reduce(lambda x, y: x+ y, [3, 6, 2, 8, 8, 0, 0])

澄清:

reduce(lambda x, y: x + y, [str(reduce(lambda x, y: x * y, range(1, 11)))])

如何将其中的所有内容[ ]转换为一位整数列表,以便第一个函数可以评估它?当然我需要.[ ]

4

2 回答 2

7

我认为您只是在寻找要从中获取整数数字的字符串map(int, s)s例如:

>>> import math
>>> math.factorial(10)
3628800
>>> str(math.factorial(10))
'3628800'
>>> map(int,str(math.factorial(10)))
[3, 6, 2, 8, 8, 0, 0]
>>> sum(map(int,str(math.factorial(10))))
27
于 2013-07-20T02:55:19.177 回答
1

您可以使用列表推导:

[int(x) for x in str(reduce(lambda x, y: x * y, range(1, 11)))]

最终产品:

reduce(lambda x, y: x + y, [int(x) for x in str(reduce(lambda x, y: x * y, range(1, 11)))])
于 2013-07-20T02:57:25.723 回答