在 Python 中获取 OrderedDict 的最后一个元素
Get the last element of an OrderedDict in Python
获取 an 的最后一个元素OrderedDict
:
- 使用
reversed()
函数反转OrderedDict
对象。 - 将结果传递给
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
可能为空,则可以提供默认值None
if 您需要避免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
类也保证保留插入顺序。