Python为循环执行此操作的方法

Python为循环执行此操作的方法,python,for-loop,Python,For Loop,我有以下代码: for item in packages: if item["name"] == dependency_to_install: dependencies = item["requires"] for dependency in dependencies: get_dependency(packages, dependency, requirements) requirements.append(ite

我有以下代码:

for item in packages:
    if item["name"] == dependency_to_install:
        dependencies = item["requires"]
        for dependency in dependencies:
            get_dependency(packages, dependency, requirements)
        requirements.append(item["name"])
有没有一种python方法可以在一行代码中完成这一切

提前谢谢你

埃迪特:


或者这已经足够好了,我不需要寻找更好的,因为这是不言自明的?

这可能是一个列表理解,但不要这样做

我将附上一份可能相关的文件:

美胜于丑。 显式比隐式好。 简单总比复杂好。 可读性计数

但是,如果不在其他任何地方使用,您最多可以删除dependencies=item[requires]:

for item in packages:
    if item["name"] == dependency_to_install:
        for dependency in item["requires"]:
            get_dependency(packages, dependency, requirements)
        requirements.append(item["name"])

正如@所建议的,您的命名也可以改进。您可能希望将项重命名为package。

在Python中可能有一种方法可以在一行中完成,它可能不好,也就是说,它不是Python的方式,也就是说,不是pythonic的方式。您的意思是列表理解,正如@Stefan Pochmann所说的,它可能是其他人提到的不好的,更短!=较好的一行程序有自己的位置,但字节很便宜,可读性更重要。我要做的另一件事是将项重命名为包。另外,在我发现item[name]等于dependency_to_install之后,添加item[name]看起来很奇怪,我想这可能会在get_dependency调用中发生变化?史蒂芬波希曼想到了这一点,但这个问题缺乏背景,所以我决定不给任何其他建议。不过,将项目更改为包看起来很公平。如果你同意的话,我再加上