Tutorial Python

RUMAH Python Pengenalan Python Python Memulai Sintaks Python Komentar Python Variabel Python Tipe Data Python Nomor Python Pengecoran Python String Python Python Boolean Operator Python Daftar Python Tuple Python Set Python Kamus Python Python Jika...Lain Python Sementara Loop Python Untuk Loop Fungsi Python Python Lambda Array Python Kelas/Objek Python Warisan Python Python Iterator Lingkup Python Modul Python Tanggal Python Python Matematika Python JSON Python RegEx Python PIP Python Coba...Kecuali Masukan Pengguna Python Pemformatan String Python

Penanganan Berkas

Penanganan File Python File Baca Python Python Tulis/Buat File Python Hapus File

Modul Python

Tutorial NumPy Panduan Panda Tutorial sip

Python Matplotlib

Pengantar Matplotlib Matplotlib Memulai Matplotlib Pyplot Merencanakan Matplotlib Penanda Matplotlib Garis Matplotlib Label Matplotlib Kotak Matplotlib Subplot Matplotlib Penyebaran Matplotlib Matplotlib Bar Histogram Matplotlib Bagan Pai Matplotlib

Pembelajaran mesin

Mulai Mode Median Rata-rata Standar Deviasi Persentil Distribusi Data Distribusi Data Normal Plot Pencar Regresi linier Regresi Polinomial Regresi Berganda Skala Kereta/Tes Pohon Keputusan

Python MySQL

MySQL Memulai MySQL Buat Basis Data MySQL Buat Tabel Sisipan MySQL MySQL Pilih MySQL Dimana MySQL Dipesan Oleh Hapus MySQL Tabel Drop MySQL Pembaruan MySQL Batas MySQL MySQL Bergabung

Python MongoDB

MongoDB Memulai MongoDB Buat Basis Data MongoDB Buat Koleksi Sisipan MongoDB Temukan MongoDB Permintaan MongoDB Sortir MongoDB Hapus MongoDB Koleksi Jatuhkan MongoDB Pembaruan MongoDB Batas MongoDB

Referensi Python

Ikhtisar Python Fungsi bawaan Python Metode String Python Metode Daftar Python Metode Kamus Python Metode Tuple Python Metode Set Python Metode File Python Kata Kunci Python Pengecualian Python Daftar Istilah Python

Referensi Modul

Modul Acak Modul Permintaan Modul Statistik Modul Matematika Modul cMath

Python Bagaimana caranya?

Hapus Duplikat Daftar Membalikkan String Tambahkan Dua Angka

Contoh Python

Contoh Python Kompilator Python Latihan Python Kuis Python Sertifikat Python

Python Iterator


Python Iterator

Iterator adalah objek yang berisi sejumlah nilai yang dapat dihitung.

Iterator adalah objek yang dapat diulang, artinya Anda dapat melintasi semua nilai.

Secara teknis, dalam Python, iterator adalah objek yang mengimplementasikan protokol iterator, yang terdiri dari metode __iter__() dan __next__().


Iterator vs Iterable

Daftar, tupel, kamus, dan set semuanya adalah objek yang dapat diubah. Mereka adalah wadah yang dapat diubah tempat Anda bisa mendapatkan iterator.

Semua objek ini memiliki iter()metode yang digunakan untuk mendapatkan iterator:

Contoh

Kembalikan iterator dari Tuple, dan cetak setiap nilai:

mytuple = ("apple", "banana", "cherry")
myit = iter(mytuple)

print(next(myit))
print(next(myit))
print(next(myit))

Bahkan string adalah objek yang dapat diubah, dan dapat mengembalikan iterator:

Contoh

String juga merupakan objek yang dapat diubah, berisi urutan karakter:

mystr = "banana"
myit = iter(mystr)

print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))
print(next(myit))

Looping Melalui Iterator

Kami juga dapat menggunakan forloop untuk beralih melalui objek yang dapat diubah:

Contoh

Iterasi nilai tuple:

mytuple = ("apple", "banana", "cherry")

for x in mytuple:
  print(x)

Contoh

Iterasi karakter string:

mystr = "banana"

for x in mystr:
  print(x)

Loop forsebenarnya membuat objek iterator dan mengeksekusi metode next() untuk setiap loop.



Buat Iterator

Untuk membuat objek/kelas sebagai iterator, Anda harus mengimplementasikan metode __iter__()dan __next__()ke objek Anda.

Seperti yang telah Anda pelajari di bab Python Classes/Objects , semua kelas memiliki fungsi yang disebut __init__(), yang memungkinkan Anda melakukan inisialisasi saat objek sedang dibuat.

Metode __iter__()ini bertindak serupa, Anda dapat melakukan operasi (menginisialisasi dll.), tetapi harus selalu mengembalikan objek iterator itu sendiri.

Metode __next__()ini juga memungkinkan Anda untuk melakukan operasi, dan harus mengembalikan item berikutnya secara berurutan.

Contoh

Buat iterator yang mengembalikan angka, dimulai dengan 1, dan setiap urutan akan bertambah satu (mengembalikan 1,2,3,4,5 dll.):

class MyNumbers:
  def __iter__(self):
    self.a = 1
    return self

  def __next__(self):
    x = self.a
    self.a += 1
    return x

myclass = MyNumbers()
myiter = iter(myclass)

print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))

Berhenti Iterasi

Contoh di atas akan berlanjut selamanya jika Anda memiliki cukup pernyataan next(), atau jika digunakan dalam satu forlingkaran.

Untuk mencegah iterasi berlangsung selamanya, kita dapat menggunakan StopIterationpernyataan.

Dalam __next__()metode ini, kita dapat menambahkan kondisi terminasi untuk memunculkan kesalahan jika iterasi dilakukan beberapa kali:

Contoh

Berhenti setelah 20 iterasi:

class MyNumbers:
  def __iter__(self):
    self.a = 1
    return self

  def __next__(self):
    if self.a <= 20:
      x = self.a
      self.a += 1
      return x
    else:
      raise StopIteration

myclass = MyNumbers()
myiter = iter(myclass)

for x in myiter:
  print(x)