キー名を失うことなく、2 つの名前付きタプルをマージしたいと考えています。「+」演算子を使用してマージを実行すると、結果としてタプルが得られますが、名前はありません。
例えば:
n [1]: from collections import namedtuple
In [2]: A = namedtuple("A", "a b c")
In [4]: B = namedtuple("B", "d e")
In [5]: a = A(10, 20, 30)
In [6]: b = B(40, 50)
In [7]: a + b
Out[7]: (10, 20, 30, 40, 50)
上記のケースでわかるように、 a + b の結果には名前が関連付けられていません。
しかし、A と B の両方のフィールドを持つ 3 番目の名前付きタプルを作成することで、それを実現できます。
In [8]: C = namedtuple("C", A._fields + B._fields)
In [9]: C(*(a + b))
Out[9]: C(a=10, b=20, c=30, d=40, e=50)
これは正しい方法ですか、それともこれを行うためのより良い方法はありますか?