You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何循环执行函数直到Python列表所有元素都为指定值

循环调用函数直到列表全为指定值的实现方案

核心逻辑

你需要用循环持续调用API获取列表,每次调用后校验所有元素是否均为success,满足条件就终止循环执行后续代码,否则间隔一段时间后重试。

注意:必须增加重试间隔避免高频请求触发API限流,建议同时设置最大重试次数,避免API持续异常导致程序无限卡死。

基础实现代码(无重试次数限制)

import time

# 替换为你实际调用API返回列表的函数
def fetch_api_list():
    # 此处写你的API调用逻辑,示例仅为模拟返回
    return ['init', 'success', 'success']

while True:
    current_status = fetch_api_list()
    # 用all()校验所有元素是否为success
    if all(status == "success" for status in current_status):
        break
    # 重试间隔可根据业务场景调整,单位为秒
    time.sleep(5)

# 循环跳出后即可执行后续脚本逻辑
print("所有状态均为success,继续执行后续任务")

优化实现代码(带最大重试次数限制)

import time

# 可根据业务需求调整以下参数
MAX_RETRY_TIMES = 30
RETRY_INTERVAL_SEC = 10

def fetch_api_list():
    # 替换为实际API调用逻辑
    return []

retry_count = 0
while retry_count < MAX_RETRY_TIMES:
    current_status = fetch_api_list()
    if all(status == "success" for status in current_status):
        print("所有任务执行成功")
        break
    retry_count += 1
    print(f"当前未满足条件,第{retry_count}次重试,等待{RETRY_INTERVAL_SEC}秒")
    time.sleep(RETRY_INTERVAL_SEC)
else:
    # 触发条件:循环正常结束(未通过break跳出),即达到最大重试次数仍未满足要求
    raise TimeoutError(f"累计重试{MAX_RETRY_TIMES}次仍未全部返回success,任务终止")

# 后续业务逻辑

关键语法说明

Python内置的all()函数会遍历传入的可迭代对象,只有所有元素的判断结果都为True时才会返回True,只要有一个元素不等于success就会返回False,触发重试逻辑。

内容的提问来源于stack exchange,提问作者bgrbr2016

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 10:45:01