Tre*_*ent 3 python string iteration buffer
我正在尝试找到一些代码,给定一个字符串,允许我使用for循环结构迭代每一行,但是添加了要求,单独的for循环结构不会将迭代重置回到开头.
目前我有
sList = [line for line in theString.split(os.linesep)]
for line in SList
... do stuff
Run Code Online (Sandbox Code Playgroud)
但是,连续的for循环会将迭代重置回到开头.
python中是否存在某些内容,或者我是否必须从头开始编写?
Ale*_*lli 13
只需使用生成器表达式(genexp)而不是您现在使用的列表推导(listcomp) - 即:
sList = (line for line in theString.split(os.linesep))
Run Code Online (Sandbox Code Playgroud)
这就是全部 - 如果你对你的代码感到满意(通过os.linesep分割,即使Python中的普通文本I/O已经将它们翻译成\n......),你所需要做的就是使用括号(圆形的)而不是括号(方形),你将得到一个发电机而不是一个列表.
现在,每次你做一个for line in sList:,它将从前一个停止的地方开始(大概是因为a break) - 这就是你要求的,对吧?
| 归档时间: |
|
| 查看次数: |
3178 次 |
| 最近记录: |