Доступ к произвольному элементу в словаре в Python - PullRequest
442 голосов
/ 23 июня 2010

Если mydict не пустой, я получаю доступ к произвольному элементу как:

mydict[mydict.keys()[0]]

Есть ли лучший способ сделать это?

Ответы [ 15 ]

2 голосов
/ 17 сентября 2018

самый простой способ для python3:

list(dict.keys())[0]
1 голос
/ 18 февраля 2019
first_key, *rest_keys = mydict
1 голос
/ 26 ноября 2017

Нет внешних библиотек, работает на Python 2.7 и 3.x:

>>> list(set({"a":1, "b": 2}.values()))[0]
1

Для ключа aribtrary просто не указывайте .values ​​()

>>> list(set({"a":1, "b": 2}))[0]
'a'
0 голосов
/ 25 июня 2019

Обновление ответа @ swK на основе комментария @alldayremix:

В Python 3 используйте:

list(my_dict.keys())[0]     -> key of "first" element
list(my_dict.values())[0]   -> value of "first" element
list(my_dict.items())[0]    -> (key, value) tuple of "first" element
0 голосов
/ 16 февраля 2018

Подклассы dict - это один из методов, хотя и не эффективный. Здесь, если вы введете целое число, оно вернет d[list(d)[n]], в противном случае получите доступ к словарю, как и ожидалось:

class mydict(dict):
    def __getitem__(self, value):
        if isinstance(value, int):
            return self.get(list(self)[value])
        else:
            return self.get(value)

d = mydict({'a': 'hello', 'b': 'this', 'c': 'is', 'd': 'a',
            'e': 'test', 'f': 'dictionary', 'g': 'testing'})

d[0]    # 'hello'
d[1]    # 'this'
d['c']  # 'is'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...