在Python 2.7中,可以写:
sum(map(int, "123"))
在Python 3中,它成了:
sum(x for x in map(int, "123"))
有没有办法让它更简洁?
编辑:
我正在运行pylab,它会从sum()
导入numpy
,从而改变第一个代码段的语义。对于Python 2.7和Python 3.3,IDLE产生的结果与DSM注意到的相同。
注:
我很感激任何人对这个问题进行投票,并以简短的解释发表评论。我编辑了标题(最初:有没有办法在Python 3中找回map()的简明符号?)以反映我对底层问题的更好理解。还有什么困扰你?
答案 0 :(得分:2)
map
;实际上,您的第一个代码段应该仍然有效。
答案 1 :(得分:0)
Python3-ish的做法越多
sum(int(d) for d in "123")
虽然有人指出,map()仍然存在。
答案 2 :(得分:-2)
Oooops,我在相关问题链接中找到了答案:
sum(list(map(int, "123")))