【问题标题】:python using yield from in a functionpython在函数中使用yield from
【发布时间】:2014-11-16 06:56:51
【问题描述】:

我有一个类似的列表:

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 同时修改iterable中的项目。 也许我必须在函数中使用 *args 和/或 **kwargs 但不确定我有以及如何使用。

【问题讨论】:

  • 这里有什么问题?

标签: python python-3.x generator yield yield-from


【解决方案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(',', '')

【讨论】:

猜你喜欢
  • 2019-01-06
  • 2016-07-06
  • 2019-04-07
  • 2021-09-30
  • 1970-01-01
  • 1970-01-01
  • 2014-01-10
  • 2023-01-25
  • 2018-09-13
相关资源
最近更新 更多