扩展列表理解生成器中的元组

时间:2015-05-30 22:22:45

标签: python list tuples list-comprehension

我正在使用此功能

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

我想要的输出应该是

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

上述功能的输出是

[genexp, genexp, genexp] 

它的生成器表达式,我无法像我想要的那样扩展它

2 个答案:

答案 0 :(得分:7)

将gen-exp转换为tuple

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

答案 1 :(得分:5)

parens按照Bhargav's answer创建一个生成器表达式调用元组,或者您可以将--accept用于map:

merge

演示:

operator.attrgetter

您可以删除python2的列表调用。