Modul itertools adalah library standar yang mengandung beberapa fungsi yang berguna dalam pemrograman fungsional. Salah satu jenis fungsi yang dihasilkan adalah pengulangan yang tak terbatas.
Fungsi count menghitung ke atas secara tak terbatas dari sebuah nilai. Fungsi cycle mengulang tak terbatas melalui sebuah pengulangan, sebagai contoh sebuah list atau string. Fungsi repeat mengulang sebuah object, baik secara tak terbatas atau sebuah jumlah tertentu.
from itertools import count
for i in count(7):
print(i)
if i >= 17:
break
=====>
7
8
9
10
11
12
13
14
15
16
17
=====>
Ada banyak fungsi dalam itertools yang beroperasi dalam perulangan, yang mirip dengan map & filter. Sebagai contoh :
- takewhile : mengambil item dari sebuah perulangan ketika sebuah fungsi bernilai benar.
- chain : menggabungkan beberapa perulangan menjadi satu yang panjang.
- accumulate : mengembalikan total nilai yang berjalan pada perulangan.
from itertools import accumulate, takewhile
angka = list(accumulate(range(8)))
print(angka)
print(list(takewhile(lambda x: x <= 6, angka)))
=====>
[0, 1, 3, 6, 10, 15, 21, 28]
[0, 1, 3, 6]
=====>
Ada juga beberapa fungsi kombinatorik dalam itertools, seperti product dan permutation. Fungsi tersebut digunakan ketika kita ingin menyelesaikan sebuah tugas dengan semua kemungkinan kombinasi pada beberapa item.
from itertools import product, permutations
huruf = ("A", "B")
print(list(product(huruf, range(2))))
print(list(permutations(huruf)))
=====>
[('A', 0), ('A', 1), ('B', 0), ('B', 1)]
[('A', 'B'), ('B', 'A')]
=====>
LANJUTKAN BACA MATERI LENGKAP