2016-11-24 8 views
0

私は、dictのタプルを返すPythonからMySQLクエリを実行しており、結果を呼び出すことができます。それぞれの辞書は3つのキー/値のペアを要素として持ちます。これら3つの要素のうちの1つは日付です。今、私は "タプルのタプル"のようなものを作成したいと考えています。mysqlデータベースからのdictのタプルのタプル

(({},{},{}..),({},{},{}..),({},{},{}..)...) 

ここで、各内側タプルは同じ日付のデータを表します。私は知っていることを知っていることを知っている。しかし、これを行うよりエレガントな方法を探しています。どのようにすれば最も効果的な方法でこれを行うことができますか?

+0

実際のサンプル入力と期待される出力を与えると簡単でしょう – Guillaume

+0

タプルのタプルにそれらを保存しなければなりませんか? – khajvah

+0

khajvah @は必要ありません。それは私が欲しいものは、日付に基づいて辞書のグループです何でもすることができます。 –

答えて

1

一つ格好良い解決策は、辞書内にそれらを保存するために、次のようになります。

>>> t = ({"a":2}, {"a":2}, {"a":3}) 
>>> import collections 
>>> d = collections.defaultdict(list) 
>>> for i in t: 
...  d[i['a']].append(i) 
... 

、これはあなたが望むものは明らかではないが、これはという点で直接ループ内のリストのリストを作成するよりも優れていますまた、辞書はこの種のデータに適しているようです。これはまた、あなたが簡単に好きに変換することができます。

>>> [k for c,k in d.items()] 
[[{'a': 2}, {'a': 2}], [{'a': 3}]] 

速度が重要な場合は、あなたがより良いアルゴリズムを得ることができ、その場合には、日付、によってデシベル結果を並べ替えることができます。

+0

はいこれを行うための全目的は時間を短縮することです。だから、あなたは私が行くべきアルゴリズムを教えてください。私はデータベースから日付順にデータを取得する場合。 –

+0

@MahendraVishwakarmaこれを最初にお試しください。これは十分速くなければなりません。 – khajvah

+0

これは私がすでに試したものです。このようにして、私は何百万ものレコードを繰り返し処理しなければならず、すべてのレコードを繰り返し処理する必要はありません。数百万のレコードを反復処理するのは時間がかかるためです。 –

関連する問題