【问题标题】:How to save an index in lambda, python如何在lambda,python中保存索引
【发布时间】:2014-12-14 12:28:10
【问题描述】:

我正在尝试执行以下操作:

>>>func = lambda string,i=0: string[index]

>>> func('HEY')
H
>>> func('HEY')
E
>>> func('HEY')
Y

如何每次都保存和增加索引(不创建全局索引) 谢谢

【问题讨论】:

  • 你确定你不只是想要一个迭代器吗?

标签: python python-3.x lambda


【解决方案1】:

解决方案 1

你可以像这样创建一个生成器函数

def get_next_char(actual_string):
    for char in actual_string:
        yield char

然后,你需要创建一个生成器对象,像这样

next_char = get_next_char("HEY")

就是这样。您现在可以使用next 函数获取下一个字符,如下所示

>>> next(next_char)
H
>>> next(next_char)
E
>>> next(next_char)
Y

解决方案 2

你可以像这样简单地使用字符串的迭代器

get_char = iter("HEY")
>>> next(get_char)
H
>>> next(get_char)
E
>>> next(get_char)
Y

【讨论】:

  • 你能告诉我如何将'get_next_char'函数转换为lambda吗?如果可能的话?
  • @ArnoldOsipov lambda 函数和普通函数不能保留状态,除非它们绑定到一个对象或全局对象。所以,他们不可能:(
  • 感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2014-01-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多