Saat bekerja dengan iterables Python, menemukan jumlah item yang berisi iterables adalah operasi umum. Pelajari cara menggunakan len bawaan Python untuk menemukan panjang iterables dan banyak lagi.
Python menawarkan rangkaian struktur data bawaan dan serangkaian metode untuk bekerja dengannya. Selain itu, ada fungsi bawaan yang berguna saat bekerja dengan struktur data ini. Salah satu fungsi tersebut adalah len() yang memberikan jumlah item yang ada dalam iterable.
Dalam tutorial ini, kita akan mempelajari cara menggunakan fungsi len() dengan list, tuple, string, dan lainnya. Kita juga akan melihat beberapa kasus penggunaan umum.
Mari kita mulai!👩‍🏫
Daftar isi
Sintaks Fungsi Python len()
Berikut sintaks untuk menggunakan fungsi len Python:
len(iterable)
Seperti yang terlihat, fungsi len() memerlukan satu parameter, yang mana saja yang dapat diubah secara valid. Iterable seringkali merupakan salah satu dari daftar, tuple, atau string. Tapi itu juga bisa menjadi tipe valid lainnya.
Kita melihat bahwa sintaks untuk menggunakan fungsi len() sangat sederhana. Selanjutnya, mari lanjutkan ke kode beberapa contoh.
đź“‘ Untuk contoh kode dalam tutorial ini, Anda dapat membuat kode bersama dalam Python REPL.
Menggunakan Fungsi len() dengan Iterables
Dengan Urutan
Anda dapat menggunakan fungsi len() untuk menemukan panjang iterable seperti list, tuple, dan string.
Berikut contohnya:
>>> nums = [9,3,6,1,2] >>> len(nums) 5 >>> nums_tup = (9,3,6,1,2) >>> len(nums_tup) 5
Untuk struktur data yang menyimpan urutan ini, Anda biasanya akan mengakses elemen menggunakan indeksnya atau mendapatkan potongan (urutan) sesuai kebutuhan.
Dengan Koleksi Lainnya
Anda juga dapat menggunakan fungsi len() dengan koleksi Python lainnya seperti set dan kamus.
Struktur data ini adalah koleksi yang tidak terurut. Meskipun Anda mungkin tidak tertarik untuk memesan item, tetap berguna untuk mendapatkan jumlah total item dalam koleksi.
>>> nums_set = set(nums) >>> len(nums_set) 5 >>> prices = {'Notebook':5,'Pencil case':7,'Bookmarks':3,'Pens':1,'Markers':8} >>> len(prices) 5
Kasus Penggunaan Umum Fungsi Python len()
Sejauh ini, kita telah melihat contoh sederhana penggunaan fungsi len() untuk mendapatkan jumlah item dalam iterable. Sekarang mari kita lihat di mana kita dapat menggunakan ini dalam praktik.
#1. Iterasi Menggunakan For Loops
Python for loop menyediakan konstruksi untuk mengulang melalui iterables di for item dalam sintaks iterable. Namun jika Anda ingin mengakses indeks setiap item dan bukan item itu sendiri atau indeks dan item sekaligus, Anda dapat menggunakan fungsi range() seperti yang ditunjukkan:
>>> nums = [9,2,4,7,8] >>> for i in range(len(nums)): ... print(f"Index {i}: {nums[i]}")
Karena range(N) memberikan urutan bilangan bulat 0,1,2,…,N – 1, menggunakan range(len(nums)) memberi kita kumpulan indeks yang valid untuk diulang.
# Output Index 0: 9 Index 1: 2 Index 2: 4 Index 3: 7 Index 4: 8
Namun, cara Pythonic yang direkomendasikan untuk mengakses indeks dan elemen menggunakan fungsi enumerate:
>>> nums = [9,2,4,7,8] >>> for idx,num in enumerate(nums): ... print(f"Index {idx}: {num}")
# Output Index 0: 9 Index 1: 2 Index 2: 4 Index 3: 7 Index 4: 8
#2. Perulangan Bersyarat Menggunakan While Loops
Katakanlah Anda memiliki daftar angka nums. Metode daftar pop() menghapus item terakhir dalam daftar dan mengembalikannya.
Selama panjang nums list len(nums) lebih besar dari nol—setidaknya ada satu elemen yang dapat dihapus.
>>> nums = [9,2,4,7,8] >>> while len(nums) > 0: ... nums.pop()
# Output 8 7 4 2 9
Contoh di atas adalah cara penulisan yang lebih eksplisit sebagai berikut:
>>> nums = [9,2,4,7,8] >>> while nums: ... nums.pop()
while nums : sama dengan kondisi “sementara daftar num tidak kosong”.
#3. Memeriksa dan Memvalidasi Panjang Iterables
Penggunaan umum lainnya dari fungsi len adalah dalam memeriksa dan memvalidasi panjang iterables tertentu.
Di sini kami memeriksa apakah nama pengguna adalah string yang valid berdasarkan panjangnya (dihitung menggunakan fungsi len()):
>>> username = "another-random-user" >>> if len(username) > 10: ... print("Username too long; should be 10 characters long at max.") ... elif len(username) < 5: ... print("Username too short; should be at least 5 characters long.") ... else: ... print("Valid username!")
Username too long; should be 10 characters long at max.
#4. Pemahaman Daftar dan Kamus
Pemahaman dalam Python memberikan sintaks ringkas untuk membangun iterables baru dari yang sudah ada. Kita dapat menggunakan fungsi bawaan dalam ekspresi pemahaman.
Daftar Pemahaman
Dalam pemahaman daftar ini, kami menggunakan fungsi len() untuk mendapatkan panjang setiap string dalam daftar bahasa.
>>> languages = ['Python','C','Rust','JavaScript'] >>> len_langs = [len(lang) for lang in languages] >>> len_langs [6, 1, 4, 10]
Pemahaman Kamus
Dalam pemahaman kamus ini, kami menggunakan daftar bahasa dan fungsi len() untuk membuat kamus:
>>> languages = ['Python','C','Rust','JavaScript'] >>> lang_len = {lang:len(lang) for lang in languages} >>> lang_len {'Python': 6, 'C': 1, 'Rust': 4, 'JavaScript': 10}
Di sini, kunci dan nilai masing-masing adalah string bahasa dan panjang string bahasa.
#5. Parameter Kunci dalam Penyortiran Kustom
Python memiliki metode sort() bawaan untuk mengurutkan daftar Python dan fungsi sortir() untuk mengurutkan daftar dan iterable lainnya.
Di keduanya, Anda dapat menggunakan parameter kunci untuk menyesuaikan penyortiran.
Di sini, kami mengurutkan daftar bahasa berdasarkan panjang string.
>>> languages = ['Python','C','Rust','JavaScript'] >>> languages.sort(key=len) >>> languages ['C', 'Rust', 'Python', 'JavaScript']
Dalam cuplikan di bawah ini, kami menggunakan fungsi sortir() untuk mendapatkan daftar terurut.
>>> languages = ['Hindi','English','German','French'] >>> sorted(languages,key=len) ['Hindi', 'German', 'French', 'English']
Dalam contoh ini, ‘Jerman’ dan ‘French’ masing-masing memiliki 6 karakter. Karena fungsi sortir() melakukan penyortiran yang stabil, pengurutan dalam daftar asli dipertahankan.
#6. Panjang Array NumPy
Anda juga dapat menggunakan fungsi len() dengan struktur data lain seperti array NumPy.
>>> import numpy as np >>> np_array = np.array([3,4,6,9]) >>> type(np_array) <class 'numpy.ndarray'> >>> len(np_array) 4
Dalam hal ini, np_array adalah vektor dengan 4 elemen. Jadi len(np_array) mengembalikan 4, jumlah elemen yang ada dalam array.
Matriks adalah array dua dimensi.
Perhatikan contoh berikut. len(np_array) adalah 2, yang merupakan jumlah baris.
>>> matrix = [[1,2,3],[4,5,6]] >>> np_array = np.array(matrix) >>> np_array array([[1, 2, 3], [4, 5, 6]]) >>> len(np_array) 2
Untuk memahami, mari kembali ke matriks. Kami memiliki struktur daftar bersarang di mana daftar luar berisi dua daftar bersarang. Dan fungsi len() mengembalikan jumlah item dalam wadah (di sini, ada dua daftar):
>>> help(len) Help on built-in function len in module builtins: len(obj, /) Return the number of items in a container.
Namun, saat Anda mulai bekerja dengan array multidimensi, disarankan untuk menggunakan atribut bentuk.
>>> np_array.shape (2, 3)
Jebakan Umum yang Harus Dihindari Saat Menggunakan Fungsi len() Python
Untuk mengakhiri diskusi kita, mari kita membahas beberapa jebakan umum yang harus Anda hindari saat menggunakan fungsi len di Python.
Menggunakan len() dengan Tipe Data Non-Iterable
Kita tahu bahwa fungsi len hanya menerima iterables yang valid sebagai argumen. Artinya jika Anda memanggil fungsi len dengan—tipe data yang tidak valid—yang tidak dapat diubah, Anda akan mengalami kesalahan.
Jenis yang tidak valid tersebut mencakup jenis data dasar seperti bilangan bulat, bilangan floating point, dan Boolean:
>>> len(2) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: object of type 'int' has no len() >>> len(True) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: object of type 'bool' has no len() >>> len(3.14) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: object of type 'float' has no len()
Di Python, generator adalah pilihan hemat memori untuk kasus penggunaan yang memerlukan pembuatan urutan. Objek generator mengembalikan elemen urutan—sesuai permintaan—satu elemen dalam satu waktu. Tetapi objek generator tidak memiliki panjang.
Jadi, Anda akan mengalami kesalahan jika mencoba menghitung panjang objek generator:
>>> nums_sq = (i*i for i in range(10)) >>> nums_sq <generator object <genexpr> at 0x0157DBC0> >>> len(nums_sq) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: object of type 'generator' has no len()
Menggunakan len() dengan Tuples of Length One
Jika Anda hanya menyisipkan elemen dalam sebuah tupel, Python mengartikannya sebagai elemen tunggal dan bukan sebagai sebuah tuple.
Berikut contohnya:
>>> nums = (1) >>> len(nums) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: object of type 'int' has no len()
Jadi ketika Anda memiliki tuple dengan hanya satu elemen, inisialisasi dalam bentuk ini: tuple_name = (elt, ) sehingga diinterpretasikan sebagai tuple:
>>> nums = (1,) >>> len(nums) 1
Menyimpulkan
Berikut ringkasan dari apa yang telah kami bahas dalam tutorial ini:
- Anda dapat menemukan jumlah item dalam setiap iterable menggunakan fungsi len() di Python. Sintaks untuk menggunakan fungsi panjang adalah: len(any-valid-iterable).
- Ini termasuk urutan seperti daftar, tupel, dan string. Dan koleksi lainnya seperti kamus dan set.
- Fungsi len() umumnya digunakan dalam loop dan pemahaman.
- Anda juga dapat menggunakan fungsi len() sebagai parameter kunci saat Anda perlu menyesuaikan penyortiran menurut panjangnya. Misalnya: mengurutkan daftar string berdasarkan panjangnya.
Selanjutnya, pelajari cara menggunakan fungsi sum() Python.