0Pricing
Python Academy · Pelajaran

itertools: Iterator Tak Terbatas dan Terbatas

Gunakan count, cycle, islice, chain, dan zip_longest.

itertools: Iterator Tak Terbatas dan Terbatas adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.

Apa Itu itertools?

itertools adalah modul pustaka standar yang menyediakan blok pembangun iterator yang hemat memori. Semua fungsi mengembalikan iterator, bukan daftar.

import itertools

# count: infinite counter
for i in itertools.islice(itertools.count(10, 2), 5):
    print(i, end=" ")  # 10 12 14 16 18

count()

count(start, step) menghasilkan urutan aritmetika tak terbatas. Selalu gunakan bersama islice atau kondisi penghentian.

import itertools

for n in itertools.count(1, 10):
    if n > 40:
        break
    print(n, end=" ")  # 1 11 21 31 41

cycle()

cycle(iterable) mengulang objek yang dapat diiterasi tanpa batas.

import itertools

colors = itertools.cycle(["red","green","blue"])
for _ in range(7):
    print(next(colors), end=" ")
# red green blue red green blue red

repeat()

repeat(value, times) menghasilkan nilai yang sama sebanyak times kali (tak terbatas jika tidak dicantumkan).

import itertools
print(list(itertools.repeat(42, 4)))   # [42, 42, 42, 42]
print(list(map(pow, range(5), itertools.repeat(2))))
# [0, 1, 4, 9, 16]

islice()

islice(it, stop) atau islice(it, start, stop, step) mengambil irisan iterator tanpa memuat seluruhnya ke memori.

import itertools

result = list(itertools.islice(range(100), 2, 10, 2))
print(result)  # [2, 4, 6, 8]

chain()

chain(*iterables) menggabungkan beberapa objek yang dapat diiterasi secara berurutan dari awal hingga akhir menjadi satu iterator.

import itertools

result = list(itertools.chain([1,2], [3,4], [5]))
print(result)  # [1, 2, 3, 4, 5]

# chain.from_iterable for a list of iterables:
nested = [[1,2],[3,4]]
print(list(itertools.chain.from_iterable(nested)))

zip_longest()

zip_longest menggabungkan objek yang dapat diiterasi dengan panjang berbeda, lalu mengisi nilai yang hilang dengan fillvalue.

import itertools

a = [1, 2, 3]
b = ["a", "b"]
print(list(itertools.zip_longest(a, b, fillvalue=0)))
# [(1, "a"), (2, "b"), (3, 0)]

dropwhile() dan takewhile()

takewhile(pred, it) menghasilkan item selama predikat bernilai benar. dropwhile melakukan kebalikannya.

import itertools

nums = [1, 3, 5, 6, 7, 9]
print(list(itertools.takewhile(lambda x: x % 2, nums)))
# [1, 3, 5]

print(list(itertools.dropwhile(lambda x: x % 2, nums)))
# [6, 7, 9]

filterfalse()

filterfalse(pred, it) menghasilkan elemen yang predikatnya bernilai False — kebalikan dari filter().

import itertools

evens = list(itertools.filterfalse(lambda x: x%2, range(10)))
print(evens)  # [0, 2, 4, 6, 8]

starmap()

starmap(func, iterable) menerapkan fungsi pada setiap tupel argumen dari objek yang dapat diiterasi.

import itertools, operator

pairs = [(2,3),(4,5),(1,10)]
result = list(itertools.starmap(operator.mul, pairs))
print(result)  # [6, 20, 10]

groupby()

groupby(it, key) mengelompokkan elemen berurutan yang memiliki nilai kunci sama. Urutkan objek yang dapat diiterasi terlebih dahulu agar pengelompokan benar.

import itertools

data = sorted([("a",1),("b",2),("a",3)], key=lambda x:x[0])
for key, group in itertools.groupby(data, key=lambda x:x[0]):
    print(key, list(group))

Pemeriksaan Cepat

Apa yang dihasilkan oleh itertools.chain([1,2], [3,4])?

Ringkasan

itertools menyediakan iterator tak terbatas (count, cycle, repeat), pengambilan irisan (islice), penggabungan (chain, zip_longest), dan penyaringan (takewhile, dropwhile, filterfalse). Semuanya bersifat malas dan hemat memori.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “itertools: Iterator Tak Terbatas dan Terbatas” gratis?

Ya — teks lengkap “itertools: Iterator Tak Terbatas dan Terbatas” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “itertools: Iterator Tak Terbatas dan Terbatas”?

Gunakan count, cycle, islice, chain, dan zip_longest. Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Python Academy?

Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “itertools: Iterator Tak Terbatas dan Terbatas” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?

Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. itertools: Iterator Tak Terbatas dan Terbatas
  2. itertools: Kombinatorika
  3. functools: partial dan reduce
  4. functools: lru_cache dan cached_property
← Kembali ke Python Academy