私はリストのリストを持っています.2番目のレベルのリストの最初の各項目は、その性質に関する一種のメタ情報として見ることができます.
# simple sample, real data are much more complex, but it can be schematized as this one
L = [('n0', 1), ('n1', 4), ('n1', 2), ('n2', 5)]
性質はここで入手できます:
natures = list(set(zip(*L)))[0]
私は、それぞれの「性質」の連続によってそれらをグループ化する、それぞれ異なる可能な組み合わせのそれぞれを持つ別のリストを作成する必要があります(つまり、natures
)
結果は以下の例からのものでなければなりません
R = [
[('n0', 1), ('n1', 4), ('n2', 5)],
[('n0', 1), ('n1', 2), ('n2', 5)]
]
これは、いくつかの itertools パッケージを使用して巧妙に行うことができると思いますが、その中で完全に迷ってしまいました。誰かが正しい itertools を使用するのを手伝ってくれませgroupby
んproduct
か?
よろしくお願いします