當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。