来自mysql数据库的dict元组的元组

时间:2016-11-24 09:43:36

标签: python mysql dictionary tuples

我从python运行MySQL查询返回dict的元组,让我们调用它的结果。现在每个dict都有3个键/值对作为元素,这3个元素中的一个是date。现在我想创建“dict元组的元组”,比如

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

其中每个内部元组表示同一日期的数据。我知道我可以使用dict理解。但我正在寻找更优雅的方式来做到这一点。我怎样才能以最有效的方式做到这一点?

1 个答案:

答案 0 :(得分: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}]]

如果速度很关键,您可以按日期对db结果进行排序,在这种情况下,您可以获得更好的算法。