色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

python 迭代器分組

張吉惟2年前8瀏覽0評論

Python中的迭代器是一種非常方便的工具,通過它們可以遍歷很多對象,比如列表、字典、文件等等。但是,在某些情況下,我們希望將迭代器按照一定規則分組,比如將相鄰的元素分為一組,或者將某些指定條件下的元素分為一組等等。這時,我們就可以使用Python中的itertools模塊中的groupby()函數。

import itertools
data = [1, 1, 2, 3, 3, 1, 5, 5, 5]
groups = itertools.groupby(data)
for key, group in groups:
print(key, list(group))

上面的代碼中,我們首先導入了itertools模塊,然后定義了一個列表data,其中包含了一些整數。接著,我們使用itertools模塊中的groupby()函數對列表data進行分組,將相鄰的相同元素分為一組。最后,我們使用for循環遍歷每個分組,并將其打印出來。

運行上面的代碼,可以得到如下結果:

1 [1, 1]
2 [2]
3 [3, 3]
1 [1]
5 [5, 5, 5]

可以看到,通過groupby()函數,我們成功將相鄰的相同元素分為了一組,并且給每組分配了一個key值(即相同元素的值)。

除了上面的例子,我們還可以通過自定義一個函數來實現更復雜的分組操作。比如,下面的代碼可以將列表中的奇偶數分別分成一組:

import itertools
def is_even(n):
return n % 2 == 0
data = [1, 2, 3, 4, 5, 6, 7, 8, 9]
groups = itertools.groupby(data, is_even)
for key, group in groups:
print(key, list(group))

上面的代碼中,我們首先定義了一個函數is_even(),用來檢查一個數是否為偶數。然后,我們定義了一個列表data,其中包含了一些整數。接著,我們使用itertools模塊中的groupby()函數對列表data進行分組,將偶數和奇數分別分為一組。最后,我們使用for循環遍歷每個分組,并將其打印出來。

運行上面的代碼,可以得到如下結果:

False [1, 3, 5, 7, 9]
True [2, 4, 6, 8]

可以看到,通過groupby()函數,我們成功將列表中的奇偶數分別分為了一組,并且給每組分配了一個key值。