如果一个`mydict'不是空的,我访问一个任意的元素为。
mydict[mydict.keys()[0]]
有什么更好的方法可以做到吗?
在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'不是一个有序类型。
正如其他人提到的,没有"第一项",因为字典没有保证顺序(它们被实现为哈希表)。 例如,如果你想要最小的键所对应的值,thedict[min(thedict)]
就能做到。 如果你关心键的插入顺序,也就是说,你所说的 "第一 "是指 "最早插入",那么在 Python 3.1 中,你可以使用 collections.OrderedDict,它也在即将发布的 Python 2.7 中;对于旧版本的 Python,下载、安装并使用有序的 dict backport (2.4 及以后版本),你可以找到 这里。
Python 3.7 现在 dict 是插入式的。
忽略围绕口令的问题,这可能更好。
next(dict.itervalues())
这样我们就避免了项目查找和生成一个我们不使用的键的列表。
next(iter(dict.values()))