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