如何解决Python列表理解Django对象
我正在开发一个字典Django应用,其中DeFinition
个具有Tag
个。我已经编写了此通用函数,以从Tag
的列表中收集所有DeFinition
。
这是我当前的工作版本:
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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。