Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python在函数中使用yield from_Python_Python 3.x_Generator_Yield_Yield From - Fatal编程技术网

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(',', '')