Python代码简化?一行,在列表中添加全部

Bac*_*kus 6 python

我正在通过项目Euler,我正在尝试编写最简洁的代码.我知道这是可能的,所以我怎样才能简化以下代码.最好,我希望它是一行而不是使用int-> string-> int转换.

问题:数字2 1000的数字总和是多少?

我的答案:

>>> i=0
>>> for item in [int(n) for n in str(2**1000)];i+=item
Run Code Online (Sandbox Code Playgroud)

Sil*_*ost 16

sum(int(n) for n in str(2**1000))
Run Code Online (Sandbox Code Playgroud)

  • 为了好玩,这是完全相同的事情:`sum(int(n)for n in str(1 << 1000))` (3认同)
  • 为了好玩,总和(map(int,str(2**1000)));) (2认同)