Python:生成器中的多个yield语句

时间:2012-07-06 16:35:47

标签: python yield

问题:

如何将x.replace(".0",".")添加到函数rem0。

我需要有两个屈服声明,但只能让其中一个生效。

def rem0(data):
    for x in data:
        yield x.lstrip('0')

lGrid = []

for i in rem0(grid):
    lGrid.append(i)

2 个答案:

答案 0 :(得分:4)

使用以下构造将解决您的问题。

def rem0(data):
    for x in data:
        yield x.lstrip('0').replace(".0", ".")

答案 1 :(得分:1)

你甚至不想要一个生成器,因为无论如何结果都是一个列表,直接构建列表并写入更有效:

grid = [el.lstrip('0').replace('.0', '') for x in some_data]