ID EN
Itertools

groupby

Python 3.11 🇮🇩 Bahasa Indonesia

Buat iterator yang mengembalikan kunci dan grup berturut-turut dari iterable. Kuncinya adalah fungsi yang menghitung nilai kunci untuk setiap elemen. Jika tidak ditentukan atau Tidak Ada, kunci default ke fungsi identitas dan mengembalikan elemen tanpa perubahan. Secara umum, iterable harus sudah diurutkan berdasarkan fungsi kunci yang sama.

Syntax

PYTHON
itertools.groupby(iterable, key=None)

Contoh

Example 1
PYTHON
groups = []
uniquekeys = []
data = sorted(data, key=keyfunc)
for k, g in groupby(data, keyfunc):
    groups.append(list(g))       Store group iterator as a list
    uniquekeys.append(k)
Example 2
PYTHON
class groupby:
     [k for k, g in groupby('AAAABBBCCDAABBB')] --> A B C D A B
     [list(g) for k, g in groupby('AAAABBBCCD')] --> AAAA BBB CC D

    def __init__(self, iterable, key=None):
        if key is None:
            key = lambda x: x
        self.keyfunc = key
        self.it = iter(iterable)
        self.tgtkey = self.currkey = self.currvalue = object()

    def __iter__(self):
        return self

    def __next__(self):
        self.id = object()
        while self.currkey == self.tgtkey:
            self.currvalue = next(self.it)     Exit on StopIteration
            self.currkey = self.keyfunc(self.currvalue)
        self.tgtkey = self.currkey
        return (self.currkey, self._grouper(self.tgtkey, self.id))

    def _grouper(self, tgtkey, id):
        while self.id is id and self.currkey == tgtkey:
            yield self.currvalue
            try:
                self.currvalue = next(self.it)
            except StopIteration:
                return
            self.currkey = self.keyfunc(self.currvalue)

See Also

groupby() groupby() groupby() groupby()