Доступ к произвольному элементу в словаре в Python

$(document).one('mousemove', function() { $(element).trigger('click') } );

Работала для меня, когда я сталкивался с подобной проблемой, это обычный eRube Goldberg.

445
задан Acumenus 16 May 2018 в 15:59
поделиться

3 ответа

На Python 3, недеструктивно и итеративно:

next(iter(mydict.values()))

На Python 2, недеструктивно и итеративно:

mydict.itervalues().next()

Если вы хотите, чтобы он работал как в Python 2, так и в 3, вы можно использовать пакет six :

six.next(six.itervalues(mydict))

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

Если вы хотите удалить какой-либо элемент, выполните:

key, value = mydict.popitem()

Обратите внимание, что «первый» здесь не подходит. Это «любой» элемент, потому что dict не является упорядоченным типом.

555
ответ дан 22 November 2019 в 22:51
поделиться

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

next(dict.itervalues())

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

Python3

next(iter(dict.values()))
11
ответ дан 22 November 2019 в 22:51
поделиться

Как уже говорилось, "первого элемента" не существует, поскольку словари не имеют гарантированного порядка (они реализованы как хэш-таблицы). Если вам нужно, например, значение, соответствующее наименьшему ключу, thedict[min(thedict)] сделает это. Если вам важен порядок, в котором были вставлены ключи, т.е. под "первым" вы подразумеваете "вставленный раньше всех", то в Python 3.1 вы можете использовать collections.OrderedDict, который также есть в готовящемся к выпуску Python 2.7; для старых версий Python скачайте, установите и используйте бэкпорт ordered dict (2.4 и выше), который вы можете найти здесь.

Python 3.7 Теперь дикты упорядочены по вставке.

16
ответ дан 22 November 2019 в 22:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: