在 Python 中获取 OrderedDict 的最后一个元素

在 Python 中获取 OrderedDict 的最后一个元素

Get the last element of an OrderedDict in Python

获取 an 的最后一个元素OrderedDict

  1. 使用reversed()函数反转OrderedDict对象。
  2. 将结果传递给next()函数以获取
    OrderedDict.
主程序
from collections import OrderedDict my_dict = OrderedDict( [('id', 1), ('name', 'bobbyhadz'), ('topic', 'Python')] ) last_key = next(reversed(my_dict)) print(last_key) # 👉️ topic last_value = my_dict[last_key] print(last_value) # 👉️ Python last_pair = next(reversed(my_dict.items())) print(last_pair) # 👉️ ('topic', 'Python')

reversed函数接受一个迭代器,将其
反转并返回结果。

主程序
from collections import OrderedDict my_dict = OrderedDict( [('id', 1), ('name', 'bobbyhadz'), ('topic', 'Python')] ) # 👇️ ['topic', 'name', 'id'] print(list(reversed(my_dict)))

next()函数从提供的迭代器返回下一个项目。

主程序
from collections import OrderedDict my_dict = OrderedDict( [('id', 1), ('name', 'bobbyhadz'), ('topic', 'Python')] ) last_key = next(reversed(my_dict)) print(last_key) # 👉️ topic last_value = my_dict[last_key] print(last_value) # 👉️ Python last_pair = next(reversed(my_dict.items())) print(last_pair) # 👉️ ('topic', 'Python')
您可以将调用dict.items()方法的结果传递给函数以获取. reversed() OrderedDict

dict.items方法返回字典
项((键,值)对)的新视图。

主程序
from collections import OrderedDict my_dict = OrderedDict( [('id', 1), ('name', 'bobbyhadz'), ('topic', 'Python')] ) # 👇️ odict_items([('id', 1), ('name', 'bobbyhadz'), ('topic', 'Python')]) print(my_dict.items())

如果您需要访问OrderedDict.

主程序
from collections import OrderedDict my_dict = OrderedDict( [('id', 1), ('name', 'bobbyhadz'), ('topic', 'Python')] ) print(list(my_dict.items())[0]) # 👉️ ('id', 1) print(list(my_dict.items())[1]) # 👉️ ('name', 'bobbyhadz')
这是必需的,因为视图对象不可订阅(无法在特定索引处访问)。

您可以使用相同的方法获取OrderedDict.

主程序
from collections import OrderedDict my_dict = OrderedDict( [('id', 1), ('name', 'bobbyhadz'), ('topic', 'Python')] ) first_key = next(iter(my_dict)) print(first_key) # 👉️ id first_value = my_dict[first_key] print(first_value) # 👉️ 1 first_pair = next(iter(my_dict.items())) print(first_pair) # 👉️ ('id', 1)

我们使用iter
函数来获取迭代器对象。

应该注意的是,该next()函数可以传递一个默认值作为第二个参数。
主程序
from collections import OrderedDict my_dict = OrderedDict() last_key = next(reversed(my_dict), 'default value') print(last_key) # 👉️ default value

如果迭代器耗尽或为空,则返回默认值。

如果迭代器耗尽或为空且未提供默认值,
StopIteration则会引发异常。

如果您OrderedDict可能为空,则可以提供默认值Noneif 您需要避免StopIteration 异常。
主程序
from collections import OrderedDict my_dict = OrderedDict() last_pair = next(reversed(my_dict.items()), None) print(last_pair) # 👉️ None if last_pair is not None: print('Do work')

OrderedDict
类是 的子类,

dict会记住其条目的添加顺序。

请注意,从 Python 3.7 开始,标准dict类也保证保留插入顺序。