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