python中itertools groupby函数是干嘛的_Python-如何使用itertools.groupby()?
小編典典
重要說明:你必須先對數據進行排序。
我沒有得到的部分是在示例構造中
groups = []
uniquekeys = []
for k, g in groupby(data, keyfunc):
groups.append(list(g)) # Store group iterator as a list
uniquekeys.append(k)
k是當前的分組密鑰,并且g是一個迭代器,你可以用來迭代該分組密鑰定義的組。換句話說,groupby迭代器本身返回迭代器。
這是一個使用更清晰的變量名的示例:
from itertools import groupby
things = [("animal", "bear"), ("animal", "duck"), ("plant", "cactus"), ("vehicle", "speed boat"), ("vehicle", "school bus")]
for key, group in groupby(things, lambda x: x[0]):
for thing in group:
print "A %s is a %s." % (thing[1], key)
print " "
這將為你提供輸出:
A bear is a animal.
A duck is a animal.
A cactus is a plant.
A speed boat is a vehicle.
A school bus is a vehicle.
在此示例中,things是一個元組列表,其中每個元組中的第一項是第二項所屬的組。
該groupby()函數有兩個參數:(1)要分組的數據和(2)將數據分組的函數。
在這里,lambda x: x[0]告訴groupby()使用每個元組中的第一項作為分組鍵。
在上面的for語句中,groupby返回三個(鍵,組迭代器)對-每個唯一鍵一次。你可以使用返回的迭代器來迭代該組中的每個單個項目。
這是一個使用列表推導的具有相同數據的稍微不同的示例:
for key, group in groupby(things, lambda x: x[0]):
listOfThings = " and ".join([thing[1] for thing in group])
print key + "s: " + listOfThings + "."
這將為你提供輸出:
animals: bear and duck.
plants: cactus.
vehicles: speed boat and school bus.
2020-02-12
總結
以上是生活随笔為你收集整理的python中itertools groupby函数是干嘛的_Python-如何使用itertools.groupby()?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python string.format
- 下一篇: 天锐绿盾解密_天锐绿盾携手衡阳规划设计院