py iterable for list range
Dalam Python loop dengan for digunakan untuk proses berkelanjutan yang berurutan (sequential traversal) seperti pengulangan pada suatu iterable seperti string, tuple, list, array dan lainnya, yang termasuk dalam kategori iterasi terdefinisi [ 1 ]. Terdapat perbedaan antara range dan list, yang sejak Python 3.x range tidak lagi memproduksi list sehingga elemen-elemennya tidak lagi memerlukan memori untuk menyimpannya, melainkan hanya dibuat on the fly saat iterasi dilakukan, sehingga proses iterasinya menjadi lebih cepat [ 2 ].
for
For pada Python dapat digunakan dengan bentuk
for var in iterable
dengan variabel var
akan berisikan elemen-elemen pada iterable
yang disampaikan satu per satu, di mana
x = [3, 2, 1] for i in x: print(i)
merupakan salah satu contohnya, yang akan menampilkan semua elemen dari x
pada konsol satu per baris. Pada contoh di atas var
adalah i
dan iterable
adalah x
, serta elemen-elemen x
adalah 3
, 2
, dan 1
. Contoh ini dapat dijalankan di
3xmrsn6v8
.
range
Range pada Python, yang berfungsi untuk membuat variabel immutable berisi urutan angka, bersifat inklusif [
3
] yang berarti bahwa argumen kedua stop
tidak terikutkan dalam range yang dihasilkan, sedangkan argumen pertama star
terikutkan, yang bentuk penggunaannya adalah
range(start, stop[, step])
dengan contoh
print(list(range(1, 11, 2)))
akan menghasilkan [1, 3, 5, 7, 9]
dengan 11
tidak diikutsertakan. Coba contoh ini di
3xmrufzxt
. Terdapat penjelasan yang baik mengenai range() dengan disertai visualisasi yang menarik [
4
].
example
Dapat digunakan range, list, dan list terbuat dari range sebagai iterable pada loop for, dengan masing-masing variabelnya adalah ra
, li
, dan lira
, sebagaimana tersajikan pada kode berikut ini
# python 3.9.1
# 0292-a.py
# Range and list for iteration
# 20211219
# Sparisoma Viridi | github.com/dudung
# url bugx.vercel.app/pages/0292.html
# ref
# Define a range
ra = range(0, 12, 2)
print(ra)
print(type(ra))
for i in ra:
print(i)
print()
# Define a list
li = [0, 2, 4, 6, 8, 10]
print(li)
print(type(li))
for i in li:
print(i)
print()
# Define a list from a range
lira = list(ra)
print(lira)
print(type(lira))
for i in lira:
print(i)
print()
yang dapat dijalankan di 3xmrrdhp6 dan akan memberikan
range(0, 12, 2)0 2 4 6 8 10 [0, 2, 4, 6, 8, 10] 0 2 4 6 8 10 [0, 2, 4, 6, 8, 10] 0 2 4 6 8 10
sebagai hasilnya.
exer
- Bagaimana nilai-nilai
i
bila digunakan padarange(0, 6, 1)
? - Kode
range(5, -1, -1)
akan menghasilkan iterable dengan nilai-nilai berapa saja? - Mengapa range() dikatakan bersifat inklusif?
- Modifikasi
range(1, 7, 2)
agar dihasilkan 1, 3, 5, 7. Manfaatkan contoh di 3xmrvkd7g bila diperlukan. - Bila
x
merupakan suatu range dan ingin dibuat menjadi list dalam variabel bernamay
, bagaimana caranya?
note
- nikhilaggarwal3, ankushgarg1998 balajikawle777, “Python For Loops”, GeeksforGeeks, 25 Aug 2021, url https://www.geeksforgeeks.org/python-for-loops/ [20211219].
- Anand S Kumar, “Answer to ‘What is the difference between “range(0,2)” and “list(range(0,2))”?’”, Stack Overflow, 5 Jul 2015, url https://stackoverflow.com/a/31227578 [20211218].
- Krunal, “Python Range Inclusive: Why Range Does Not Include End”, AppDivident, 24 Mar 2021, url https://appdividend.com/2021/03/24/python-range-inclusive/ [20211219].
- Vishal Hule, “Python range() Explained with Examples”, PYnative, 16 Jun 2021, url https://pynative.com/python-range-function/ [20211219].