Pendahuluan
Seperti bahasa pemrograman lainnya, for loop di Python sedikit berbeda karena bekerja lebih seperti iterator dan kurang seperti kata kunci for. Di Python, tidak ada sintaks seperti C for(i=0; i<n; i++) melainkan Anda menggunakan for in n.
For loop dapat digunakan untuk mengiterasi urutan list, string, tuple, set, array, data frame.
Dengan sebuah list elemen, for loop dapat digunakan untuk mengiterasi setiap item dalam list tersebut dan mengeksekusinya.
Untuk mengiterasi serangkaian item, for loop menggunakan fungsi range. Fungsi range mengembalikan list baru berisi angka dalam rentang tertentu berdasarkan panjang urutan.
Saat mengiterasi sebuah urutan, Anda juga dapat menggunakan indeks elemen dalam urutan tersebut untuk mengiterasi, tetapi kuncinya adalah terlebih dahulu menghitung panjang list lalu mengiterasi dalam rentang panjang tersebut.
for loop di Python menggunakan indeks mulai dari nol (zero-indexed).
Mari langsung masuk ke bagian implementasinya.
Anda juga dapat menonton video ini untuk tutorial singkat!
Mulai Belajar Python Gratis
Pengantar Data Science dengan Python
Mengimplementasikan Loop
Untuk mulai, mari cetak angka dari 1–10. Karena for loop di Python menggunakan indeks mulai dari nol, Anda perlu menambahkan satu pada setiap iterasi; jika tidak, keluarannya akan bernilai 0–9.
for i in range(10):
print (i+1)
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9
# 10
Mari kita iterasi sebuah string kata Datacamp menggunakan for loop dan hanya mencetak huruf a.
for i in "Datacamp":
if i == 'a':
print (i)
# a
# a
# a
Misalkan Anda ingin mendefinisikan sebuah list elemen dan mengiterasi elemen-elemen tersebut satu per satu.
sequence = [1, 2, 8, 100, 200, 'datacamp', 'tutorial']
for i in sequence:
print (i)
# 1
# 2
# 8
# 100
# 200
# datacamp
# tutorial
Tetapi bagaimana jika Anda ingin mengetahui panjang list dan kemudian mengiterasinya? Anda akan menggunakan fungsi bawaan len untuk itu lalu pada hasil panjangnya Anda terapkan range.
Ingat, range selalu mengharapkan nilai bilangan bulat.
sequence = [1, 2, 8, 100, 200, 'datacamp', 'tutorial']
for i in range(len(sequence)):
print (sequence[i])
# 1
# 2
# 8
# 100
# 200
# datacamp
# tutorial
Bagus! Tapi mengapa Anda perlu menggunakan fungsi len saat Anda bisa langsung menggunakan for i in numbers? Jawabannya sederhana. Bagaimana jika Anda ingin memodifikasi atau bekerja dengan indeks urutan seperti mengubah elemen pada list yang ada, maka Anda memerlukan range(len(sequence)).
sequence = [1, 2, 8, 100, 200, 'datacamp', 'tutorial']
for i in range(len(sequence)):
element = sequence[i]
if type(element) == int:
sequence[i] = element + 4
print(sequence)
# [5, 6, 12, 104, 204, 'datacamp', 'tutorial']
Keren, bukan? Anda berhasil memodifikasi elemen-elemen list berdasarkan kondisi if.
Sekarang mari lihat bagaimana Anda dapat mencetak bilangan ganjil antara 1–20. Untuk melakukannya, Anda harus mendefinisikan tiga hal dalam fungsi range. Titik awal, titik akhir, dan nilai kenaikan (atau langkah) tempat loop akan menambah selama menelusuri angka 1–20.
for i in range(1,20,2):
print (i)
# 1
# 3
# 5
# 7
# 9
# 11
# 13
# 15
# 17
# 19
Nested For loop
for i in range(11):
for j in range(i):
print (i, end=' ')
print()
# 1
# 2 2
# 3 3 3
# 4 4 4 4
# 5 5 5 5 5
# 6 6 6 6 6 6
# 7 7 7 7 7 7 7
# 8 8 8 8 8 8 8 8
# 9 9 9 9 9 9 9 9 9
# 10 10 10 10 10 10 10 10 10 10
For loop untuk mengiterasi baris dan kolom sebuah dataframe
import pandas as pd
iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
iris.head()
| sepal_length | sepal_width | petal_length | petal_width | species | |
|---|---|---|---|---|---|
| 0 | 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 1 | 4.9 | 3.0 | 1.4 | 0.2 | setosa |
| 2 | 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 3 | 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 4 | 5.0 | 3.6 | 1.4 | 0.2 | setosa |
len(iris)
# 150
for i in range(len(iris)):
Class = iris.iloc[i,4]
if Class == 'versicolor' and i < 70:
print (Class)
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
Selanjutnya, mari tambahkan dua pada setiap baris kolom sepal_length,sepal_width, petal_length, dan petal_width.
columns = ['sepal_length','sepal_width','petal_length','petal_width']
for indices, row in iris.iterrows():
for column in columns:
iris.at[indices,column] = row[column] + 2
iris.head()
| sepal_length | sepal_width | petal_length | petal_width | species | |
|---|---|---|---|---|---|
| 0 | 7.1 | 5.5 | 3.4 | 2.2 | setosa |
| 1 | 6.9 | 5.0 | 3.4 | 2.2 | setosa |
| 2 | 6.7 | 5.2 | 3.3 | 2.2 | setosa |
| 3 | 6.6 | 5.1 | 3.5 | 2.2 | setosa |
| 4 | 7.0 | 5.6 | 3.4 | 2.2 | setosa |
Mengiterasi sebuah urutan dengan fungsi Lambda
Fungsi lambda Python cepat dan kuat dibandingkan dengan for loop dasar. Fungsi ini banyak digunakan, khususnya saat bekerja dengan DataFrame. Anda dapat memproses data dengan bantuan fungsi Lambda dengan sangat sedikit kode. Meskipun begitu, terkadang fungsinya agak sulit dipahami.
x = [20, 30, 40, 50, 60]
y = []
for v in x :
y += [v * 5]
print(y)
# [100, 150, 200, 250, 300]
Sekarang, mari coba ini dengan fungsi lambda dan map.
Map menerima sebuah fungsi, misalnya fungsi lambda, dan sebuah urutan x lalu mengembalikan urutan baru.
x = [20, 30, 40, 50, 60]
y = map(lambda x: x * 5,x)
print(y)
# <map object at 0x4063cc8>
Fungsi tersebut mengembalikan generator, dan untuk mendapatkan keluaran dari generator, Anda meneruskan keluarannya sebagai argumen ke list.
x = [20, 30, 40, 50, 60]
y = map(lambda x: x * 5,x)
print(list(y))
# [100, 150, 200, 250, 300]
Sekarang, mari mundur selangkah dan lihat cara for loop dan kombinasi lambda/map(). Anda akan melihat bahwa perbedaannya adalah penambahan map, lambda, dan penghilangan "for" serta "in". Selain itu, semuanya dapat Anda tulis dalam satu baris.
Kesimpulan
Selamat telah menyelesaikan tutorial dasar For loop di Python ini.
For loop adalah tulang punggung setiap bahasa pemrograman, dan khususnya di Python, menggunakan For loop sama sekali tidak sulit untuk ditulis, dan secara konsep mirip dengan menulis kalimat bahasa Inggris.
Jika Anda ingin mempelajari lebih lanjut tentang for loop di Python, ikuti kursus DataCamp Python Data Science Toolbox (Bagian 2).
Jangan ragu untuk mengajukan pertanyaan terkait tutorial ini di kolom komentar di bawah.
