[英]What is the most pythonic way to iterate over a list until a condition is met?
[英]What's the Pythonic way to “repeat this until condition met -or- maximum achieved”?
我还在学习Python,我想知道以下是否有“更多Pythonic”方式:
MAX_ATTEMPTS = 5
for i in range(MAX_ATTEMPTS):
response = do_something()
do_something_based_on(response)
do_another_thing_based_on(response)
if response == 0:
do_something_if_success()
break
编辑:道歉,我可能已经简化了案例。 我需要在最终检查之前使用response
,所以我必须在变量中捕获它。
我认为这样可以节省比你更多的内存:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
MAX_ATTEMPTS = 5
for i in xrange(MAX_ATTEMPTS):
if 0 == do_something():
do_something_if_success()
break
编辑:
根据最新问题更新。
MAX_ATTEMPTS = 5
for i in xrange(MAX_ATTEMPTS):
response = do_something()
do_something_based_on(response)
do_another_thing_based_on(response)
if 0 == response:
do_something_if_success()
break
这似乎是实现您想要的完美有效的方式。
它可能以各种更类似函数的方式执行此操作,包括一个具有双递归生成器的方式,但我怀疑没有一个像这样直接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.