这是如何工作的:在Python中打印(sum(int(x)for x in raw_input().split()))

Hee*_*jin 4 python

我是Python的新手,我对以下代码行感到惊讶.

print (sum(int(x) for x in raw_input().split()))
Run Code Online (Sandbox Code Playgroud)

我无法理解我的Java大脑里面发生了什么,特别是x从for循环传递给int()的方式.

Mic*_*ior 8

raw_input().split()为每行输入返回一个数组.(int(x) for x in a)是一个生成器表达式,适用int于每行输入,将其转换为整数.生成器表达式的结果是一个整数数组; 每行输入一个.

最后sum得到数组中所有元素的总和,当然print会输出整个批次.因此结果是代码产生所有输入行的总和,其中每行是一个数字.