繁体   English   中英

Python 列表理解 Django 对象

[英]Python list comprehension Django objects

我正在开发字典 Django 应用程序,其中Definition s 具有Tag s。 我编写了这个通用的 function 来从Definition列表中收集所有Tag

这是我当前的工作版本:

def get_tags(definitions):
    tags = []
    for d in definitions:
        tags += d.tags.all()
    return tags

我试图使用 Python 的列表理解来完成同样的事情:

tags = []
return [tags.extend(d.tags.all()) for d in definitions]

但是,此代码还不起作用。 我错过了什么?

是否有一种更巧妙的方法可以在不创建标签变量的情况下仅在一行中执行此操作,也许使用 yield 语句?

您需要遍历所有元素d.tags.all() ,因此需要一个嵌套列表 comp:

tags = [t for d in definitions for t in d.tags.all()]

这只是列表理解版本:

tags = []
for d in definitions:
    for t in d.tags.all():
        tags.append(t)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM