我想我在内置函数的另一天看到了一篇帖子:
def itemAt(index):
def accessItem(item):
return item[index]
return accessItem
它用于像地图这样的东西。例如,要从列表列表中的每个列表中获取第一个元素,您可以执行以下操作:
map(itemAt(0), list_of_lists)
我可能只是想象事物,但是有一个内置函数可以做类似的事情,所以我可以避免使用lambda语法:
map(lambda x: x[0], list_of_lists)
正如我所说,这可能都是一个梦想,但我也“记得”看到这样的东西而不是指数。
答案 0 :(得分:4)
您正在寻找operator.itemgetter()
和operator.attrgetter()
的属性。
引用文档:
operator.attrgetter(attr)
operator.attrgetter(*attrs)
返回一个可调用对象,该对象从其操作数中获取 attr 。如果请求了多个属性,则返回属性元组。属性名称也可以包含点。
[...]
operator.itemgetter(item)
operator.itemgetter(*items)
返回一个可调用对象,该对象使用操作数的
__getitem__()
方法从其操作数中获取项。如果指定了多个项,则返回一个查找值元组。