先决条件: Python Itertools
Python的Itertool是一个模块,提供了可在迭代器上工作以产生复杂迭代器的各种函数。此模块可作为快速的memory-efficient工具使用,可单独使用或组合使用以形成迭代器代数。
Itertools.groupby()
此方法计算可迭代的每个元素的键。它返回键和可迭代的分组项。
用法: itertools.groupby(iterable, key_func)
参数:
iterable:Iterable可以是任何类型(列表,元组,字典)。
key:为可迭代的每个元素计算键的函数。
返回类型:它从迭代器返回连续的键和组。如果未指定键函数或为“无”,则键默认为标识函数,并返回不变的元素。
范例1:
# Python code to demonstrate
# itertools.groupby() method
import itertools
L = [("a", 1), ("a", 2), ("b", 3), ("b", 4)]
# Key function
key_func = lambda x:x[0]
for key, group in itertools.groupby(L, key_func):
print(key + ":", list(group))
输出:
a:[('a', 1), ('a', 2)] b:[('b', 3), ('b', 4)]
范例2:
# Python code to demonstrate
# itertools.groupby() method
import itertools
a_list = [("Animal", "cat"),
("Animal", "dog"),
("Bird", "peacock"),
("Bird", "pigeon")]
an_iterator = itertools.groupby(a_list, lambda x:x[0])
for key, group in an_iterator:
key_and_group = {key:list(group)}
print(key_and_group)
输出
{'Animal':[('Animal', 'cat'), ('Animal', 'dog')]} {'Bird':[('Bird', 'peacock'), ('Bird', 'pigeon')]}
相关用法
注:本文由纯净天空筛选整理自priyanshid1大神的英文原创作品 itertools.groupby() in Python。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。