我有以下清单
a = [[a1,b1,c1,[d1,e1,f1],[a2,b2,c2,[d2,e2,f2],[a3,b3,c3,[d3,e3,f3]]
我怎样才能将它变成一个命名元组列表
a[0].val1 >>> a1 a[1].val2 >>> b2 a[0].Box >>> [d1,f1]
解决方法
使用
collections.namedtuple
class factory创建一个命名的元组类:
mynamedtuple = collections.namedtuple('mynamedtuple',('val1','val2','val3','Box')) somenamedtuple = mynamedtuple('a1','a2','a3',['d1','e1','f1']) somenamedtuple.Box # returns ['d1','f1']
您可以使用列表解析转换现有列表:
a = [mynamedtuple(*el) for el in a]