【发布时间】: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
我正在尝试执行以下操作:
>>>func = lambda string,i=0: string[index]
>>> func('HEY')
H
>>> func('HEY')
E
>>> func('HEY')
Y
如何每次都保存和增加索引(不创建全局索引) 谢谢
【问题讨论】:
标签: python python-3.x lambda
解决方案 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
【讨论】: