在Python3中获取OrderedDict的最后一个值

时间:2014-09-01 07:56:30

标签: python python-3.x

Here是获取Python3中OrderedDict的最后一个的方法。

我需要在Python3中获取OrderedDict的最后一个值而不转换为list

Python 3.4.0 (default, Apr 11 2014, 13:05:11) 

>>> from collections import OrderedDict
>>> dd = OrderedDict(a=1, b=2)
>>> next(reversed(dd))
'b'

>>> next(reversed(dd.keys()))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: argument to reversed() must be a sequence

>>> next(reversed(dd.items()))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: argument to reversed() must be a sequence

>>> next(reversed(dd.values()))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: argument to reversed() must be a sequence

2 个答案:

答案 0 :(得分:6)

只需使用该键索引字典:

dd[next(reversed(dd))]

例如:

from collections import OrderedDict
dd = OrderedDict(a=1, b=2)
print(dd[next(reversed(dd))])     # 2

答案 1 :(得分:1)

这已在Python 3.8(https://bugs.python.org/issue33462)中修复。

>>> from collections import OrderedDict
>>> dd = OrderedDict(a=1, b=2)
>>> next(reversed(dd.keys()))
'b'
>>> next(reversed(dd.values()))
2
>>> next(reversed(dd.items()))
('b', 2)
相关问题