簡體   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