python在函数中使用yield from
我有这样一个清单:python在函数中使用yield from,python,python-3.x,generator,yield,yield-from,Python,Python 3.x,Generator,Yield,Yield From,我有这样一个清单: list=['2,130.00','2,140.00','2,150.00','2,160.00'] 我想使用如下函数 def f(iterable): yield from iterable 应用 float(item.replace(',','')) for item in iterable 同时使 f(list) 返回 [2130.00,2140.00,2150.00,2160.00] 我知道 [float(x.replace(',','')) for
list=['2,130.00','2,140.00','2,150.00','2,160.00']
我想使用如下函数
def f(iterable):
yield from iterable
应用
float(item.replace(',','')) for item in iterable
同时使
f(list)
返回
[2130.00,2140.00,2150.00,2160.00]
我知道
[float(x.replace(',','')) for x in list]
在这里工作,但它是为了理解如何使用函数中的收益率
同时修改iterable中的项。
也许我必须在函数中使用*args和/或**kwargs,但不确定我是否使用了以及如何使用。
从
中获得收益是一种传递;你是在授权给iterable。将iterable包装在生成器表达式中以转换元素,或者不使用yield from
,而是使用显式循环:
def f(iterable):
yield from (i.replace(',', '') for i in iterable)
或
这里有什么不起作用?谢谢,所以在这种情况下,最终的收益率不是很有用context@addequttorr:
从
获得的收益在委托给其他生成器时非常有用。它不是从另一个iterable转换数据的正确工具。是否有任何帖子对此进行了记录?@addequttorr:
def f(iterable):
for item in iterable:
yield item.replace(',', '')