繁体   English   中英

如何将一串数字变成一个一位整数列表?

[英]How do I turn a string of digits into a list of one-digit integers?

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)))])

如何将[ ]所有内容转换为一位数整数列表,以便第一个函数可以对其求值? 当然,我需要改变它里面[ ]

我认为您只是在寻找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

您可以使用列表理解:

[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)))])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM