Itertools adalah salah satu modul paling berguna yang disediakan Python. Fungsinya membuatnya mudah untuk bekerja dengan daftar dan larik. Apakah Anda memerlukan semua permutasi nilai dalam array, atau Anda ingin mengelompokkan karakter dari string, Itertools dapat membantu.
Menulis kode untuk kasus umum seperti itu bisa membosankan dan rawan kesalahan. Oleh karena itu, pengembang telah membangun perpustakaan untuk melakukan semua ini untuk Anda. Anda dapat menggunakan fungsi-fungsi ini dengan mengimpor Itertools. Pada artikel ini, Anda akan belajar tentang modul Itertools dengan Python dan fungsinya.
Resmi Python dokumentasi menjelaskan bahwa Itertools berisi kode untuk membangun iterator. Modul ini menyediakan fungsi yang cepat dan efisien untuk bekerja dengan daftar dan larik.
Sebelum menggunakan modul ini, Anda perlu mengimpornya menggunakan sintaks berikut:
impor itertools
Ada tiga jenis iterator berbeda yang ada dalam modul ini.
- Iterator tak terbatas
- Iterator kombinatorik
- Mengakhiri iterator
Iterator Tak Terbatas
Iterator tak terbatas dapat menjalankan loop tanpa batas. Fungsi-fungsi ini lebih sering dijalankan menggunakan a untuk lingkaran. Ada tiga iterator tak terbatas.
1. menghitung (mulai, langkah)
NS menghitung() fungsi membutuhkan dua parameter: the Mulailah dan melangkah. Loop dimulai dari nilai awal dan mengembalikan nilai yang bertambah demi langkah, yang defaultnya adalah 1. Pertimbangkan contoh yang diberikan di bawah ini: loop dimulai dari 2 dan akan menambahkan 2 setiap kali. Loop putus ketika nilai Saya menjadi 10.
untuk saya di itertools.count (2,2):
jika saya == 10:
merusak
lain:
cetak (i, akhir=" ")
Keluaran:
2 4 6 8
2. ulangi (angka, kaliToRepeat)
NS mengulang() fungsi menerima dua parameter. Yang pertama adalah nilai yang dihasilkan fungsi berulang kali. Parameter kedua adalah berapa kali angka harus diulang. Jika Anda tidak menentukan parameter kedua, loop akan berjalan tanpa batas.
untuk saya di itertools.repeat (2,5):
cetak (i, akhir=" ")
Keluaran:
2 2 2 2 2
3. siklus (masukan)
NS siklus() fungsi beralih melalui input dan mencetak item individual dalam urutan tertentu. Ketika mencapai akhir inputnya, siklus restart dari awal.
c = 0
var = "12345"
untuk saya di itertools.cycle (var):
jika c == 12:
merusak
lain:
c = c + 1
cetak (i, akhir=" ")
Keluaran:
1 2 3 4 5 1 2 3 4 5 1 2
Iterator kombinatorik
Iterator kombinatorik menyediakan fungsi untuk melakukan permutasi, kombinasi, dan produk kartesius.
1. produk (masukan)
NS produk() fungsi menghitung produk kartesius dari input yang ditentukan. Ini memiliki parameter berulang yang menghitung produk kartesius dari iterator dengan dirinya sendiri. Ini adalah parameter opsional.
larik = [1,2,3]
print (daftar (itertools.product (array, repeat=2)))
string = "ABC"
print (daftar (itertools.product (string, "XYZ"))))
Keluaran:
Contoh 1 [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
Contoh 2 [('A', 'X'), ('A', 'Y'), ('A', 'Z'), ('B', 'X'), ('B', 'Y '), ('B', 'Z'), ('C', 'X'), ('C', 'Y'), ('C', 'Z')]
2. permutasi (masukan, ukuran)
Fungsi ini mengembalikan tuple dari semua permutasi dari iterable yang diberikan. Ini menerima dua parameter: ukuran iterable dan grup. Jika ukuran grup tidak ditentukan, itu akan membentuk grup dengan panjang yang sama dengan iterable itu sendiri.
arr = [1,2,3,4]
print (daftar (itertools.permutations (arr, 2)))
Keluaran:
[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]
Terkait: Fungsi Python Yang Harus Anda Ketahui
3. kombinasi (masukan, panjang)
NS kombinasi() fungsi membantu untuk menghitung kombinasi dari iterator yang diberikan. Perhatikan bahwa fungsi ini mempertahankan urutan item dari inputnya. Ketika permutasi mencakup nilai-nilai yang berbeda hanya berdasarkan urutan, kombinasi menghasilkan nilai-nilai yang unik.
arr = [1,2,3,4]
print (daftar (itertools.combinations (arr, 3)))
Keluaran:
[(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]
Mengakhiri iterator
Mengakhiri iterator menghasilkan output berdasarkan kondisi yang diberikan pada input. Anda dapat memahaminya dengan baik dari beberapa contoh fungsi.
1. menumpuk (masukan, operator)
NS mengumpulkan() fungsi menerima dua argumen: iterable dan operator. Ini menghasilkan output dengan menerapkan operator ke total kumulatif dan setiap elemen input secara bergantian. Operator adalah argumen opsional. Jika Anda tidak lulus, fungsi ini akan melakukan penambahan.
operator impor
arr = [1,2,3,4]
cetak (daftar (itertools.accumulate (arr))))
print (daftar (itertools.accumulate (arr, operator.sub))))
Keluaran:
[1, 3, 6, 10]
[1, -1, -4, -8]
2. peta bintang (fungsi, masukan)
NS peta bintang() function menerima fungsi dan daftar Tuple sebagai argumennya. Ini menghitung nilai pengembalian dengan menerapkan fungsi ke setiap tupel di input. Dalam contoh yang diberikan, fungsi ini akan menghitung nilai maksimum dari setiap tuple dan mengembalikannya dalam sebuah array.
arr = [(1,2,3), (4,5,6), (7,8,9)]
cetak (daftar (itertools.starmap (maks, arr)))
Keluaran:
[3, 6, 9]
Terkait: Cara Membuat dan Menggunakan Tuple dengan Python
3. filter salah (fungsi)
NS salah filter() fungsi mengembalikan nilai yang tidak memenuhi kondisi dalam fungsi yang diteruskan. Kode yang diberikan di bawah ini menghapus semua nilai ganjil.
arr = [1,2,3,4]
print (daftar (itertools.filterfalse (lambda x: x % 2 != 0, arr)))
Keluaran:
[2, 4]
Lanjutkan Perjalanan Pengkodean Python Anda
Sekarang setelah Anda mempelajari modul Itertools, saatnya menjelajahi modul Python lainnya. Python memiliki modul dan pustaka untuk serangkaian tugas yang luas. Mereka mencakup konsep lanjutan seperti transformasi Fourier dan aplikasi AI/ML.
Beberapa modul lebih rumit daripada yang lain dan akan memakan waktu lebih lama untuk dipelajari. Modul Tkinter memungkinkan Anda membangun aplikasi GUI lengkap dengan Python.
Tingkatkan keterampilan Python Tkinter Anda dengan proyek pemula ini.
Baca Selanjutnya
- Pemrograman
- Pemrograman
- Python
Unnati adalah pengembang tumpukan penuh yang antusias. Dia suka membangun proyek menggunakan berbagai bahasa pemrograman. Di waktu luangnya, dia suka bermain gitar dan hobi memasak.
Berlangganan newsletter kami
Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!
Klik di sini untuk berlangganan