Python中如何获取 list/OrderedDict 的 第一个/最后一个 元素


=Start=

缘由:

最近在工作中有接触到用Python的xmltodict模块进行XML的解析,用该模块进行XML解析的时候,返回的是一个OrderDict,即——有序字典,虽然在程序中没有取OrderDict的首尾元素的方法,但出于好奇和学习的心态,学习了一下,记录在此,方便参考。

参考解答:
Python中如何获取 list 的 第一个/最后一个 元素
some_list[0]  #列表的 第一个 元素
some_list[-1] #列表的 最后一个 元素
Python中如何获取 OrderDict 的 第一个/最后一个 元素

默认情况下,Python中的dict是无序的,如果需要获取 第一个/最后一个 元素,得使用 collections.OrderedDict 才行:

from collections import OrderedDict
od = OrderedDict(zip('bar','foo'))
print od  # OrderedDict([('b', 'f'), ('a', 'o'), ('r', 'o')])

#方法一
od.keys()[-1]    # 仅适用于 Python 2.x
od.values()[-1]
od.items()[-1]

list(od.items())[-1] # 兼容 Python 3.x

#方法二
od.popitem() # also removes the last item(修改了OrderDict本身的内容)

#方法三(最佳方法)
next(reversed(od)) # get the last key
next(reversed(od.items())) # get the last item

next(iter(od)) # get the first key
next(iter(od.items())) # get the first item

 

参考链接:

=EOF=


《“Python中如何获取 list/OrderedDict 的 第一个/最后一个 元素”》 有 1 条评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注