2015-07-08 2 views
0

Используя Python 3.4, я пытаюсь сортировать словарь с двумя идентичными элементами. Когда я бегу,Сортировка словаря с несколькими ключами

my_dict = { 
    '6/18/2015': [6, 'a'], 
    '6/19/2015': [18, 't'], 
    '6/17/2015': [3, 'r'] 
    } 
for key, value in sorted(my_dict.iteritems(), key=lambda kvt: kvt[1][0]): 
     print key, ':', value 

Я получаю красиво напечатанный результат.

Но когда я использую мои фактические данные, которые больше похожи на:

my_dict = { 
    '6/18/2015': [6, 'a'], 
    '6/19/2015': [18, 't'], 
    '6/18/2015': [3, 'r'] #note the duplicate date 
    } 
for key, value in sorted(my_dict.iteritems(), key=lambda kvt: kvt[1][0]): 
     print key, ':', value 

результат просто отбрасывает любые повторяющиеся строки.

Что я делаю неправильно?

(ред добавить:.. Спасибо всем за помощь Правильный ответ понял В случае, если кто-то еще эта проблема, ключи моего словаря были на самом деле кортежи несколько кортежей начали с тем же значением, и это смущало меня.)

+1

Ключи словаря должны быть уникальными. Поэтому вы можете сохранить списки значений для захвата нескольких точек данных с того же дня – inspectorG4dget

+1

Словари не могут содержать дубликаты ключей. Использовать другую структуру данных. (Https://docs.python.org/3/library/stdtypes.html) – TigerhawkT3

ответ

0

словарь не может иметь дубликатов ключей, но вы можете создать список для хранения нескольких значений для одного и того же ключа:

my_dict = { 
    '6/18/2015': [[6, 'a'], [3,'r']], 
    '6/19/2015': [18, 't'], 
} 
Смежные вопросы