2015-09-22 4 views
0
d = { 'c' : 1, 'f': 2, 'a': 3} 

for key, value in d.iteritems(): 
    print key 

Я хочу, чтобы иметь возможность перебирать ключи, в которые они были вставлены.Python: итерирующий dict, в который были вставлены элементы

Я посмотрел на преобразование Dict в OrderedDict, но казалось, что они имеют какое-то порядка (а не порядок их введения)

есть простой способ конвертировать Dict в OrderedDict, который поддерживает порядок вставка?

+9

К тому времени, когда вы создадите dict, вы потеряли заказ. Если вам нужен заказ, вам нужно создать OrderedDict с самого начала. – BrenBarn

+0

@BrenBarn все в порядке, что я думал, а просто проверял с помощью умного ppl здесь – ealeon

ответ

2

Вы не должны преобразовать ваш dict к OrderedDict, вы должны использовать в OrderedDict в первую очередь:

from collections import OrderedDict 

od = OrderedDict() 
od['c'] = 1 
od['f'] = 2 
od['a'] = 3 

Или часто проще, создать OrderedDict из list кортежей или tuple из tuples :

od = OrderedDict([('c', 1), ('f', 2), ('a', 3)]) 

проблема с преобразованием dict к OrderedDict является то, что, как только вы создаете dict или добавить что-нибудь в него, заказ утерян. Таким образом, вы не можете использовать dict вообще, если вам нужно сохранить заказ.

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

  • Нет связанных вопросов^_^