2015-12-03 2 views
-6

Учитывая словаремКак получить словарь в список всех ключей в следующем формате? (В питона)

{ 
    'a': [1, 2, 3], 
    'b': [4, 5, 6] 
} 

как получить выходной сигнал

[ 
    ['a', 1, 2, 3], 
    ['b', 4, 5, 6] 
] 
+0

Словари не упорядочены. – mauve

+0

@mauve - вы не можете сохранить их в порядке, но вы можете упорядочить их ключи в порядке сортировки(). – TigerhawkT3

+0

в основном, мне нужно получить их в список, как показано. есть идеи? –

ответ

4

ли вы имеете в виду:

>>> a = { 
... 'a':[1,2,3], 
... 'b':[4,5,6] 
... } 

>>> [[key]+value for key, value in a.items()] 
[['b', 4, 5, 6], ['a', 1, 2, 3]] 

Если вам нужно сортировать:

>>> sorted([[key]+value for key, value in a.items()]) 
[['a', 1, 2, 3], ['b', 4, 5, 6]] 
>>> 
0

Thi s решение должно быть ближе к тому, что вы хотите (ключ и значение в одном списке на элемент словаря):

d = { 
    'a':[1,2,3], 
    'b':[4,5,6] 
} 

print sorted([[key] + values for key, values in d.iteritems()]) 

Выход:

[['a', 1, 2, 3], ['b', 4, 5, 6]] 
+0

Объект dict не имеет атрибута 'iteritems'. – DavidK

+0

@DavidK: [Да, у него есть] (https://docs.python.org/2/library/stdtypes.html#dict.iteritems) (думаю, с Python 2.2). Но вы также можете использовать 'items()'. – Falko

+0

кажется Python 3 нет. – DavidK

0

Вы должны использовать OrderedDict, если вы хотите получить конкретный заказ ,

Если вы хотите отсортировать по клавишам:

D = {'a':[1,2,3],'b':[4,5,6]} 

[[k] + D[k] for k in sorted(D.keys())] 
Смежные вопросы