return value == sum(int(x) ** len(str(value)) for x in str(value))
精慕HU
浏览 148回答 1
1回答
呼唤远方
从技术上讲,它不是一个循环。这就是所谓的理解语法,从Haskell借用到Python中(参见完整谱系的注释)。为了遵循集合的数学符号传统,并将理解与通常的循环区分开来,类似循环的枚举器出现在符号的末尾。在这里找到更多关于Python中各种理解和生成器表达式的历史,http://python-history.blogspot.com/2010/06/from-list-comprehensions-to-generator.html注意。表达式的第一个包含列表理解,列表理解是第一个也是最流行的 python 理解。第二个包含一个生成器表达式,但是,根据 PEP 289,该表达式最初称为生成器理解。