次の単純化されたケースを考えてみましょう。
lol = [['John','Polak',5,3,7,9],
['John','Polak',7,9,2,3],
['Mark','Eden' ,0,3,3,1],
['Mark','Eden' ,5,1,2,9]]
最初の2つのパラメーターに基づいて、このリストのリストをリストのリストのリストに変換するためのpythonicでメモリ+速度の効率的な方法は次のとおりです。
lolol = [[['John','Polak',5,3,7,9],
['John','Polak',7,9,2,3]],
[['Mark','Eden' ,0,3,3,1],
['Mark','Eden' ,5,1,2,9]]]
実際には、正しい階層がある限り、他のデータ構造でも問題ありません。たとえば、次の辞書構造が思い浮かびますが、それを作成しても速度効率が十分ではないようで、メモリはおそらく lolol ソリューションよりも高くなります。
dolol = {('John','Polak'):[[5,3,7,9],[7,9,2,3]],
('Mark','Eden') :[[0,3,3,1],[5,1,2,9]]}