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

6 投票
2 回答
2161 浏览
提问于 2025-04-19 04:17

这里介绍了一种在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 个回答

2

这个问题在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)
7

只需要用那个键来查找字典里的内容:

dd[next(reversed(dd))]

比如说:

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

撰写回答