使用Python的groupby實現壓縮功能

#

from itertools import groupby

def compress(data):
    return ((name, len(list(group))) for name, group in groupby(data))

def decompress(data):
    return (name * size for name, size in data)

c = compress('get uuuuuuuuuuuuuuuuuuuuuuuup')
print(''.join(decompress(c)))

 grouby函數類似Unix命令uniq,對相鄰的重複元素進行分組。

groupby(iterable[, keyfunc]) -> create an iterator which returns (key, sub-iterator) grouped by each value of key(value).

迭代sub-iterator得到的就是每一個元素,即key。


發佈了102 篇原創文章 · 獲贊 8 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章