当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python itertools.groupby()用法及代码示例


先决条件: 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。