python - 嗨,我有一项赋值,可以使用lambda并在python中映射,从而将一个数字的所有数字相加

标签 python error-handling iteration

另外,我不能双向将int转换为字符串,也不能使用列表理解

我不断收到相同的错误,但我不知道该如何处理...

这是代码:

sum_of_digits = lambda a: map(lambda b, c: b + sum_of_digits(c) if a > 10 else None, a % 10, a / 10) if a > 10 else None

def main():
    print(sum_of_digits(104))

if __name__ == '__main__':
    main()

这是错误:
TypeError: argument 2 to map() must support iteration

最佳答案

(此答案是针对该问题的先前版本,但不满足新的编辑版本的要求。)

正如其他人指出的那样,导致错误的原因是map函数的第二个参数是一个整数a % 10,但它应该是可迭代的。

这是一个满足您的问题要求的单行代码:它创建一个函数,该函数返回非负整数的数字总和,并使用lambdamap。它还使用intstr,但这并不违反您的要求。这是有效的,因为str(a)返回一个字符串,该字符串是数字的可迭代数。每个数字都是1个字符的字符串,在求和之前必须将其转换为整数。 map执行该转换。

sum_of_digits = lambda a: sum(map(int, str(a)))

关于python - 嗨,我有一项赋值,可以使用lambda并在python中映射,从而将一个数字的所有数字相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52750262/

相关文章:

php - Laravel 中如何将消息传递到另一个页面?

algorithm - 我的迭代 expmod 实现有什么问题?

Python 原始字符串和尾部反斜杠

python - Pandas:如何通过以下方式连接数据帧?

java - 在地址数组中循环?

c++ - 如何获取堆栈跟踪信息?

lisp - 定义迭代求幂和斐波那契程序

dataframe - 获取 Julia 数据框中一行的索引(类似于 iterrows?)

python - 在 Python 中,如何读取图像的 exif 数据?

python - Python的map和Haskell的fmap有什么区别?