Python 代码阅读(第 6 篇):根据给定的函数对列表中的元素进行分组
本篇阅读的代码实现了使用给定的分组函数对列表中的元素进行分组的功能。
本篇阅读的代码片段来自于30-seconds-of-python。
group_by
复制代码
group_by
接收一个列表和一个函数fn
,返回一个分组字典。函数中的字典推导式使用map
将fn
应用于列表中的元素上以生成返回字典的key
。同时使用列表推导式生成生成每个key
对应的分组列表。
字典推导式有{ key_expr: value_expr for value in collection if condition }
这样的形式。group_by
函数中字典推导式的value_expr
是一个列表,该列表使用了列表推导式来生成。即
复制代码
同时,我们可以看到根据group_by
代码中的字典推导式,可能计算出key
相同的项,根据Pyrhon中字典的类型的规则,key
相同的,只保留最新的key-value
对。实际上当key
相同时,value
值也一样。[el for el in lst if fn(el) == key]
推导式的for
语句中只有key
一个变量。
复制代码
版权声明: 本文为 InfoQ 作者【Félix】的原创文章。
原文链接:【http://xie.infoq.cn/article/86f3b33dd1ef4c283c18882a0】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论