Как индексировать словарь?

У меня есть словарь ниже:

colors = { "blue" : "5", "red" : "6", "yellow" : "8", } 

Как индексировать первую запись в словаре?

colors[0] возвращают KeyError по очевидным причинам.

  • Могу ли я включить один элемент в список без инструкции else в python?
  • Импорт файлов в Python из __init__.py
  • Неизменяемая матрица?
  • Python Sqlite3: INSERT INTO table VALUE (словарь идет здесь)
  • Flask: Как удалить файлы cookie?
  • Как определить, какие точки находятся внутри многоугольника, а какие нет (большое количество точек)?
  • Не удалось получить действительное имя пути из python os.path.abspath
  • Python PyQt - QTableWidget, JSON и emitSignal, вызывающие пустые ячейки
  • 7 Solutions collect form web for “Как индексировать словарь?”

    В Python словари неупорядочены. Если вы не заботитесь о порядке записей и хотите получить доступ к ключам или значениям по индексу в любом случае, вы можете использовать d.keys()[i] и d.values()[i] или d.items()[i] . (Обратите внимание, что эти методы создают список всех ключей, значений или элементов соответственно. Поэтому, если вам нужно их больше одного раза, сохраните список в переменной, чтобы повысить производительность.)

    Если вы заботитесь о порядке записей, начиная с Python 2.7, вы можете использовать collections.OrderedDict . Или используйте список пар

     l = [("blue", "5"), ("red", "6"), ("yellow", "8")] 

    если вам не нужен доступ по ключу. (Почему ваши номера строк кстати?)

    Если вам нужен упорядоченный словарь, вы можете использовать odict .

    Обращение к элементу словаря – это как сидеть на ослике и наслаждаться поездкой.

    Как правило, Python DICTIONARY беспредельно

    Если там есть

     dic = {1: "a", 2: "aa", 3: "aaa"} 

    Предположим теперь, если бы я пошел как dic[10] = "b" , то он не будет так напоминать это

     dic = {1:"a",2:"aa",3:"aaa",10:"b"} 

    Это может быть похоже

     dic = {1: "a", 2: "aa", 3: "aaa", 10: "b"} 

    Или

     dic = {1: "a", 2: "aa", 10: "b", 3: "aaa"} 

    Или

     dic = {1: "a", 10: "b", 2: "aa", 3: "aaa"} 

    Или любая такая комбинация.

    Таким образом, правило большого пальца – СЛОВАРЬ БЕСПЛАТНО !

    Вы не можете, так как dict неупорядочен. вы можете использовать .popitem() для получения произвольного элемента, но это удалит его из dict.

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

    Просто смотри:

     list = ['a', 'b', 'c'] dictionary = {} counter = 0 for i in list: dictionary[i] = counter counter += 1 print(dictionary) # dictionary = {'a':1, 'b':2, 'c':3} 

    Теперь через силу hashmaps вы можете потянуть индекс ваши записи в постоянное время (ака намного быстрее)

    Если кто-то еще смотрит на этот вопрос, принятый в настоящее время ответ больше не верен:

    Так как Python 3.6, словари сохраняют порядок , то есть теперь они ведут себя точно так же, как collections.OrderedDict Используется для использования. К сожалению, на сегодняшний день по-прежнему нет специального метода для индексации в словарях keys() / values() словаря, поэтому получение первого ключа / значения в словаре может быть выполнено как

     first_key = list(colors.keys())[0] first_val = list(colors.values())[0] 

    или альтернативно (это позволяет создать экземпляр представления ключей в список):

     def get_first_key(dictionary): for key in dictionary.keys(): return key first_key = get_first_key(colors) first_val = colors[first_key] 

    Словари не являются списками.

    со списками вы можете просто enter foo[0] here чтобы получить это значение.

    dicts получил функции .value и .keys ().

    Его также более целесообразно использовать try / except, если только вы итерации через dict.

    Python - лучший язык программирования в мире.