2010-05-06 3 views
5

Один из способов ручного сохранения словаря в базе данных состоит в том, чтобы сгладить его в последовательности последовательностей и передать последовательность в качестве аргумента 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)} 

ответ

5
mydict = dict((s[0], s[1:]) for s in myseq) 

myseq = tuple(sorted((k,) + v for k, v in mydict.iteritems())) 
+0

Спасибо! Мне не нужен список, отсортированный. – Louis

2
>>> mydict = dict((t[0], t[1:]) for t in myseq)) 

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

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

Смежные вопросы