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