为什么循环标头相对于正文的位置与其通常的位置不同?为什么循环变量出现在循环之前?代码取自各种程序 n=reduce(operator.mul,[int(x) for x in str(n)],1) return value == sum(int(x) ** len(str(value)) for x in str(value))
1 回答
呼唤远方
TA贡献1856条经验 获得超11个赞
从技术上讲,它不是一个循环。这就是所谓的理解语法,从Haskell借用到Python中(参见完整谱系的注释)。为了遵循集合的数学符号传统,并将理解与通常的循环区分开来,类似循环的枚举器出现在符号的末尾。
在这里找到更多关于Python中各种理解和生成器表达式的历史,http://python-history.blogspot.com/2010/06/from-list-comprehensions-to-generator.html
注意。表达式的第一个包含列表理解,列表理解是第一个也是最流行的 python 理解。第二个包含一个生成器表达式,但是,根据 PEP 289,该表达式最初称为生成器理解。
添加回答
举报
0/150
提交
取消
