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

mydict[mydict.keys()[0]]

还有什么更好的办法吗?


当前回答

这个怎么样。这里还没有提到。

Py 2和Py 3

a = {"a":2,"b":3}
a[list(a)[0]] # the first element is here
>>> 2

其他回答

在python3

list(dict.values())[0]

在python3中,方法是:

dict.keys() 

返回一个类型为:dict_keys()的值,当获取dict的key的第一个成员时,我们将得到一个错误:

dict.keys()[0]
TypeError: 'dict_keys' object does not support indexing

最后,我将dict.keys()转换为list @1st,并通过列表拼接方法获得了第一个成员:

list(dict.keys())[0]

为了得到钥匙

next(iter(mydict))

得到一个值

next(iter(mydict.values()))

两者兼得

next(iter(mydict.items())) # or next(iter(mydict.viewitems())) in python 2

前两个是Python 2和3。后两个在python3中是lazy,但在python2中不是。

first_key, *rest_keys = mydict

在Python 3中,非破坏性和迭代性:

next(iter(mydict.values()))

在Python 2中,非破坏性和迭代性:

mydict.itervalues().next()

如果你想让它在python2和python3中都能工作,你可以使用six包:

six.next(six.itervalues(mydict))

虽然在这一点上,它是相当神秘的,我更喜欢你的代码。

如果你想删除任何项目,请执行以下操作:

key, value = mydict.popitem()

请注意,“first”在这里可能不是一个合适的术语,因为dict在Python < 3.6中不是有序类型。Python 3.6+字典是有序的。