Преобразовать последовательность последовательностей в словарь и наоборот - PullRequest
5 голосов
/ 06 мая 2010

Один из способов ручного сохранения словаря в базе данных состоит в том, чтобы объединить его в последовательность последовательностей и передать последовательность в качестве аргумента для cursor.executemany ().

Также полезно обратное, то есть чтение строк из базы данных и превращение их в словари для дальнейшего использования.

Как лучше всего перейти от myseq к mydict и от mydict к myseq?

>>> myseq = ((0,1,2,3), (4,5,6,7), (8,9,10,11))

>>> mydict = {0: (1, 2, 3), 8: (9, 10, 11), 4: (5, 6, 7)}

Ответы [ 2 ]

5 голосов
/ 06 мая 2010
mydict = dict((s[0], s[1:]) for s in myseq)

myseq = tuple(sorted((k,) + v for k, v in mydict.iteritems()))
2 голосов
/ 06 мая 2010
>>> mydict = dict((t[0], t[1:]) for t in myseq))

>>> myseq = tuple(((key,) + values) for (key, values) in mydict.items())

Порядок кортежей в myseq не сохраняется, так как словари не упорядочены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...