是否有"获得第一项"功能,用于更高阶的功能?

时间:2014-06-24 01:29:49

标签: python list sequence higher-order-functions

假设有一个元组列表(或其他可索引的项目)

d = [('c', 1), ('a', 2), ('b', 3)]

将根据每个项目中的第一个元素进行排序,如此

s = sorted(d, key = lambda i: i[0])

这是否有标准/内置功能"首先"操作,这样可以写成类似下面的内容吗?

s = sorted(d, key = fn.first)

(定义一个本地第一个函数是微不足道的,但我对像operator.add或类似的标准函数感到好奇。)

1 个答案:

答案 0 :(得分:2)

使用操作员模块中的itemgetter

from operator import itemgetter
s = sorted(d, key=itemgetter(0))

此外,您可以设计自己的first运算符。

first = itemgetter(0)
s = sorted(d, key=first)