如果mydict不为空,则访问任意元素,如下:
mydict[mydict.keys()[0]]
还有什么更好的办法吗?
如果mydict不为空,则访问任意元素,如下:
mydict[mydict.keys()[0]]
还有什么更好的办法吗?
当前回答
first_key, *rest_keys = mydict
其他回答
在python3
list(dict.values())[0]
对于Python 2和3:
import six
six.next(six.itervalues(d))
在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]
如果你只需要访问一个元素(碰巧是第一个元素,因为字典不保证顺序),你可以在Python 2中简单地这样做:
my_dict.keys()[0] # key of "first" element
my_dict.values()[0] # value of "first" element
my_dict.items()[0] # (key, value) tuple of "first" element
请注意(据我所知)Python不能保证连续两次调用这些方法中的任何一个都会返回相同顺序的list。Python3不支持这一点。
在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
这个怎么样。这里还没有提到。
Py 2和Py 3
a = {"a":2,"b":3}
a[list(a)[0]] # the first element is here
>>> 2