Python生成器的输出是整数而不是数字
一周前,我刚刚学习了Python中的生成器。据我所知,“yield”返回一个生成器对象,而不是整个数组 以下是我为获取整数位数而编写的代码:Python生成器的输出是整数而不是数字,python,generator,Python,Generator,一周前,我刚刚学习了Python中的生成器。据我所知,“yield”返回一个生成器对象,而不是整个数组 以下是我为获取整数位数而编写的代码: def getDigits(m): for d in str(m): yield int(m) 这将返回作为生成器对象传递给它的整数的位数。 但当我这样做的时候: for i in getDigits(123): print i 我得到的输出是: 123 123 123 而不是: 1 2 3 发生了什么事?我做错什么
def getDigits(m):
for d in str(m):
yield int(m)
这将返回作为生成器对象传递给它的整数的位数。
但当我这样做的时候:
for i in getDigits(123):
print i
我得到的输出是:
123
123
123
而不是:
1
2
3
发生了什么事?我做错什么了吗?应该是
收益率int(d)
而不是收益率int(m)
:
我想你是说
def getDigits(m):
for d in str(m):
yield int(d)
i、 e.在循环内输出数字。输入错误:
def getDigits(m):
for d in str(m):
yield int(d)
d
代替m
试着这样做:
yield int(d)
您正在遍历它,但甚至不使用数字本身。更简单的形式是:
getDigits = lammbda m: map(int, str(m))
请使用
undersore\u分隔的
函数名,而不是camelCased
。你是说它应该是get_Digits()??还有,为什么?我不能接受答案,直到20分钟后张贴的问题。接受。
getDigits = lammbda m: map(int, str(m))