簡體   English   中英

如何在列表理解中實現嵌套循環

[英]How can i implement nested loop in list comprehension

目前我有這個

def convert_tuple(self, listobj, fields=None):
    return [(obj.start, obj.end) for obj in listobj]

但是我已經對字段進行了硬編碼。

我想將字段作為另一個列表

def convert_tuple(self, listobj, fields=['start', 'end', 'user']):
    return [(obj.field) for obj in listobj for field in fields]

我該如何實施

預期產量

[('2am', '5am', 'john'), ('3am', '5am', 'john1'), ('3am', '5am', 'john2') ]

其中凌晨2點是開始,凌晨5點是結束,約翰是用戶名

您可以利用python內置的getattr和嵌套列表推導來實現您的預​​期。

def convert_tuple(self, listobj, fields=['start', 'end', 'user']):
    return [(getattr(obj, field) for  field in fields)
            for obj in listobj] 

值得注意的是,您的理解力是笛卡爾乘積,而不是嵌套的理解力

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM