7

私は次のリストを持っています

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, e1, f1]
4

2 に答える 2

12

collections.namedtupleクラスファクトリを使用して、名前付きタプルクラスを作成します。

mynamedtuple = collections.namedtuple('mynamedtuple', ('val1', 'val2', 'val3', 'box'))

somenamedtuple = mynamedtuple('a1', 'a2', 'a3', ['d1', 'e1', 'f1'])
somenamedtuple.box  # returns ['d1', 'e1', 'f1']

リスト内包表記を使用して、既存のリストを変換できます。

a = [mynamedtuple(*el) for el in a]
于 2013-01-09T08:19:27.353 に答える
0

コレクションモジュールで利用可能なnamedtupleがあります。

namedtupleタプルのインデックスの代わりに名前で参照されるを使用して作成できます。

于 2013-01-09T08:27:46.257 に答える