[('a',), ('b',), ('a',)]
はタプルのリストは、タプルの長さが不明なタプルリストの辞書に照合しますか?
{'a': ([1.0, 3.0],), 'b': ([2.0],)}
を生成
[('a', 1.0), ('b', 2.0), ('a', 3.0)]
を生成し
が
{'a': ([1.0, 1.0], [0.1, 0.3]), 'b': ([2.0], [0.2])}
[('a', 1.0, 0.1, 7), ('b', 2.0, 0.2, 8), ('a', 1.0, 0.3, 9)]
が
{'a': ([1.0, 1.0], [0.1, 0.3], [7, 9]), 'b': ([2.0], [0.2], [8])}
を生産する生産私は、Pythonに新しいです - これは私が思い付いたものです。
def Collate(list_of_tuples):
if len(list_of_tuples)==0 or len(list_of_tuples[0])==0:
return defaultdict(tuple)
d = defaultdict(lambda: tuple([] for i in range(len(list_of_tuples[0])-1)))
for t in list_of_tuples:
d[t[0]]
for i,v in enumerate(t):
if i>0:
d[t[0]][i-1].append(v)
return d
私のコンテキストを知りたい場合、タプルのリストは測定を表します。各タプルの最初の項目は、測定されているものの識別です。 これ以降の項目は、その項目の測定のさまざまなタイプです。物事はランダムな順序で測定され、それぞれは不明な回数です。 この機能は、後続処理のために各測定値をまとめて照合します。 アプリケーションが進化するにつれて、さまざまなタイプの測定値が追加されます。 クライアントコード内の測定タイプの数が変更された場合、このCollate関数を変更する必要はありません。
同じIDのタプルに異なる数の測定値が含まれていると、結果はどうなるでしょうか。 ( 'a'、1.0、0.1)、( 'b'、2.0、0.2)、( 'a'、3.0)、( 'a'、4.0、0.4) – void