gpt4 book ai didi

Python - 迭代嵌套对象

转载 作者:行者123 更新时间:2023-12-04 00:56:34 24 4
gpt4 key购买 nike

在 Python 中迭代嵌套对象的优雅方法是什么?我目前正在使用如下的嵌套循环。

for job in jobs:
for task in job.tasks:
for command in task.commands:
print command.actual_cmd

有没有更好的方法更Pythonic?

最佳答案

您可以设置链式生成器以降低缩进级别。

iter_tasks = (task for job in jobs for task in job.tasks)
iter_commands = (command for task in iter_tasks for command in task.commands)

for command in iter_commands:
print(command.actual_cmd)

我同意 OldBunny2800在三个嵌套循环的情况下,链接生成器在可读性方面可能不会给你带来太多好处。

如果您的嵌套逻辑比这更深,生成器就会开始变得有吸引力。不仅缩进级别得到控制,您还可以为每个生成器分配一个有意义的变量名称,有效地为 for 循环命名。

关于Python - 迭代嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62145216/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com