在documentation for itertools.groupby(),
groups = []
uniquekeys = []
data = sorted(data, key=keyfunc)
我看到keyfunc用作对数据进行排序的键。这个关键字引用了什么?
答案 0 :(得分:3)
这不是关键字。它指的是您传递给sorted
key
参数的任何函数。
在您链接的文档部分中没有具体提及,但如果您搜索该页面,则可以在顶部的摘要表中找到它。
Iterator Arguments Results Example
groupby() iterable[, keyfunc] sub-iterators grouped by value of keyfunc(v)
在Python文档中,约定是可选部分用方括号表示,所以这里iterable[, keyfunc]
表示你必须传递一个iterable,以及一个名为keyfunc
的参数。似乎很奇怪,没有给出任何例子,因为这可能使事情变得更清楚。
正如他们在文档中所说的那样,“键是计算每个元素的键值的函数。如果未指定或者是None,则键默认为标识函数并返回元素不变。”这很有用,例如用于按列表中的第二个元素进行排序。
在this question中提供了一些来自其他人的文档的部分示例,包括使用lambda函数作为key
。