1

我有一个类似的列表:

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]

在这里工作,但它是为了了解如何在函数中使用 yield from 并同时修改迭代中的项目。也许我必须在函数中使用 *args 和/或 **kwargs 但不确定我有以及如何使用。

4

1 回答 1

3

yield from是传递;您正在委派可迭代。将可迭代对象包装在生成器表达式中以转换元素,或者不使用yield from显式循环:

def f(iterable):
    yield from (i.replace(',', '') for i in iterable)

或者

def f(iterable):
    for item in iterable:
        yield item.replace(',', '')
于 2014-09-22T10:33:15.930 回答