【问题标题】:Get last value of an OrderedDict in Python3在 Python3 中获取 OrderedDict 的最后一个值
【发布时间】:2014-09-01 07:56:29
【问题描述】:

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

我需要在 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

【问题讨论】:

  • 糟糕,看来我忽略了明显的解决方案:dd[next(reversed(dd))]

标签: python python-3.x


【解决方案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)

【讨论】:

    【解决方案2】:

    只需使用该键来索引字典:

    dd[next(reversed(dd))]
    

    例如:

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

    【讨论】:

      猜你喜欢
      • 2012-04-12
      • 1970-01-01
      • 2018-01-26
      • 1970-01-01
      • 2014-01-30
      • 1970-01-01
      • 2019-03-09
      • 2019-02-08
      • 2016-12-12
      相关资源
      最近更新 更多