Python с использованием yield из функции

У меня есть список как:

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 в функции, но не уверен, что у меня есть и как.

1 ответ

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(',', '')
Другие вопросы по тегам