Подтвердить что ты не робот

Доступ к значению словаря по индексу в python

Я хотел бы получить значение по ключевому индексу из словаря Python. Есть ли способ получить что-то вроде этого?

dic = {}
value_at_index = dic.ElementAt(index)

где index - целое число

P.S. Задаваемый вопрос означает отсутствие какого-либо понимания, особенно если это новый язык, и для чего нужен downvoting, приятели?:( ElementAt широко используется в С# Linq

4b9b3361

Ответ 1

Стандартные словари Python по своей сути неупорядочены, поэтому то, что вы просите сделать, на самом деле не имеет смысла.

Если вы действительно знаете, что вы делаете, используйте

value_at_index = dic.values()[index]

Помните, что добавление или удаление элемента может потенциально изменить индекс каждого другого элемента.

Ответ 2

Если вы действительно хотите получить случайное значение из доступного диапазона ключей, используйте random.choice для значений словаря (преобразуется в форму списка, если Python 3).

>>> from random import choice
>>> d = {1: 'a', 2: 'b', 3: 'c'}
>>>> choice(list(d.values()))

Ответ 3

Пока вы можете сделать

value = d.values()[index]

Лучше делать

value = next( v for i, v in enumerate(d.itervalues()) if i == index )

edit: я просто приурочил его, используя опцию len 100 000 000, проверяющую индекс в самом конце, а версия 1st/values ​​() заняла 169 секунд, тогда как для версии 2nd/next() потребовалось 32 секунды.

Также обратите внимание, что это предполагает, что ваш индекс не является отрицательным.