在Python中,groupby
函數是itertools
模塊中的函數,用于根據指定的鍵對可迭代對象進行分組。它返回一個迭代器,其中每個元素是一個(key, group)
的元組,其中key
是分組的鍵,group
是一個迭代器,包含了與該鍵相關聯的所有元素。
以下是groupby
函數的基本語法:
itertools.groupby(iterable, key=None)
其中,iterable
是可迭代對象,例如列表、字符串、元組等,key
是一個可選的函數,用于從每個元素中提取分組的鍵。如果未提供key
函數,則默認使用元素本身作為鍵。
以下是一個簡單的示例,演示了如何使用groupby
函數對列表進行分組:
import itertools
data = [1, 1, 2, 3, 3, 4, 5, 5, 5]
groups = itertools.groupby(data)
for key, group in groups:
print(key, list(group))
輸出結果為:
1 [1, 1]
2 [2]
3 [3, 3]
4 [4]
5 [5, 5, 5]
在上述示例中,列表data
被分為了5組,每組具有相同的元素。通過遍歷groups
迭代器,我們可以獲取每個分組的鍵以及與之相關聯的元素列表。