如果mydict不为空,则访问任意元素,如下:

mydict[mydict.keys()[0]]

还有什么更好的办法吗?


当前回答

first_key, *rest_keys = mydict

其他回答

忽略字典排序的问题,这样可能会更好:

next(dict.itervalues())

这样就避免了项查找和生成不使用的键的列表。

Python3

next(iter(dict.values()))

在python3

list(dict.values())[0]

子类化字典是一种方法,但效率不高。这里如果你提供一个整数,它将返回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'

对于Python 2和3:

import six

six.next(six.itervalues(d))

没有外部库,适用于Python 2.7和3.x:

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

对于任意键,省略.values()

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