[英]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.