List digunakan untuk menyimpan data yang banyak dengan hanya satu variable, list menggunakan square bracket atau kurung petak ([]
). Contoh:
nama_hewan = ["sapi", "gajah", "ayam", "bebek"]
print(nama_hewan)
List memiliki index, index dimulai dari 0, dan index kedua dimulai dari angka 1.
Kelebihan dari list adalah:
- Bisa dirubah
list bisa dirubah dengan dengan cara:
nama_hewan = ["sapi", "gajah", "ayam", "bebek"] nama_hewan[1] = "kucing" print(nama_hewan)
- Menerima duplikasi
list juga duplikasi item, sebagai contoh:
nama_hewan = ["ikan", "singa", "ikan", "sapi"] print(nama_hewan)
Tuple mirip dengan list, kecuali datanya tidak bisa diubah lagi. Tuple menggunakan round bracket atau kurung bulat (()
). Contoh:
nama_hewan = ("ikan", "gajah", "sapi", "paus")
print(nama_hewan)
Untuk tuple dengan hanya satu item di dalamnya menggunakan koma (,
) karena jika tidak menggunakan koma akan dianggap sebagai string. Contoh:
nama_hewan = ("sapi",)
print(nama_hewan)
Kita juga dapat membuat/membangun list atau dictionary menggunakan comprehension. Comprehension memanfaatkan loop untuk membangun list atau dictionary. Dengan comprehension, kita dapat membuat list dengan kode yang lebih ringkas.
Dalam menggunakan comprehension, ada 3 hal yang harus kita perhatikan, yakni:
- Output
- Loop
- Condition
Ketiga hal di atas ditulis dengan notasi comprehension sebagai berikut : Penjelasan diolah dari freecodecamp
Kita dapat membangun list menggunakan comprehension. Kita memiliki template untuk list comprehension, seperti kode yang ditunjukkan di bawah:
list_comprehension = [x for x in interable]
Iterable di atas bisa saja elemen dari list lain, atau fungsi bawaan seperti range()
.
Sebagai contoh, kita ingin membuat list yang berisikan bilangan genap dari 1 sampai 10. Dengan menggunakan list comprehension, kita dapat menuliskan kode tersebut sebagai berikut :
genap = [x for x in range(11) if x % 2 == 0]
# menghasilkan [0, 2, 4, 6, 8, 10]
print(genap)
Kode di atas dapat kita tulis ulang menggunakan loop biasa, namun kode yang ditulis akan lebih panjang dengan kode sebagai berikut :
genap = []
for x in range (11):
if x % 2 == 0:
genap.append(x)
# menghasilkan [0, 2, 4, 6, 8, 10]
print(genap)
Tidak hanya conditional menggunakan if
, tetapi kita juga bisa menggunakan if ... else
dalam list comprehension. Kode di bawah ini menggunakan if ... else
untuk menampilkan apakah nilai dalam list bernilai ganjil atau genap.
ganjilGenap = ['genap' if num % 2 == 0 else 'ganjil' for num in range(5)]
# menghasilkan ['genap', 'ganjil', 'genap', 'ganjil', 'genap']
print(ganjilGenap)
Kita juga bisa menggunakan nested loop dalam list comprehension. Kode di bawah ini membuat matriks menggunakan list comprehension.
matriks = [[i for i in range (3)] for i in range (5)]
# menghasilkan [[0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]]
print(matriks)
Pada kode di atas, terdapat dua buah list comprehension. List comprehension pertama ditunjukkan oleh [i for i in range (3)]
, sedangkan list comprehension kedua ditunjukkan oleh [ ... for i in range (5)]
. List comprehension pertama akan menghasilkan baris dengan elemen tiap baris adalah [0, 1, 2]
, dan list comprehension kedua akan menghasilkan 5 buah kolom.
Sama seperti list comprehension, kita juga dapat membangun sebuah dictionary menggunakan dictionary comprehension. Hanya saja, kita harus ingat, bahwa dictionary merupakan key - value pair, artinya kita mengakses elemen dictionary menggunakan key pada dictionary tersebut.
Kita memiliki template untuk dictionary comprehension, seperti kode yang ditunjukkan di bawah :
dict_comprehension = {k:v for (k,v) in dict.items()}
dict.items()
di atas dapat kita ganti dengan iterable lain, misalnya objek yang dihasilkan dari fungsi range()
Contoh di bawah ini adalah membangun dictionary pemangkatan 2 pada tiap value dictionary menggunakan dictionary comprehension.
awal = {'1': 1, '2': 2, '3': 3, '4': 4, '5': 5}
akhir = {k: v**2 for (k, v) in awal.items()}
# menghasilkan {'1': 1, '2': 4, '3': 9, '4': 16, '5': 25}
print(akhir)
Sama seperti list comprehension, kita juga bisa menggunakan condition dalam dictionary comprehension. Contoh di bawah ini akan menghasilkan ganjil
jika key bernilai ganjil dan sebaliknya.
awal = {'1': 1, '2': 2, '3': 3, '4': 4, '5': 5}
akhir = {k: ('ganjil' if v % 2 != 0 else 'genap') for (k, v) in awal.items()}
# menghasilkan {'1': 'ganjil', '2': 'genap', '3': 'ganjil', '4': 'genap', '5': 'ganjil'}
print(akhir)
Kemudian, sama dengan list comprehension, kita juga bisa menggunakan dictionary comprehension di dalam dictionary comprehension, atau biasa kita sebut nested dictionary comprehension. Kode di bawah ini akan memangkatkan key_luar
sebanyak key_dalam
kali.
kuadrat = {
key_luar:
{key_dalam: key_luar ** key_dalam for key_dalam in range(1, 5)}
for key_luar in range(2, 5)
}
# menghasilkan {2: {1: 2, 2: 4, 3: 8, 4: 16}, 3: {1: 3, 2: 9, 3: 27, 4: 81}, 4: {1: 4, 2: 16, 3: 64, 4: 256}}
print(kuadrat)
Kode di atas ekuivalen dengan kode di bawah.
kuadrat = dict()
for key_luar in range(2, 5):
kuadrat[key_luar] = {key_dalam: key_luar ** key_dalam for key_dalam in range(1,5)}
# menghasilkan {2: {1: 2, 2: 4, 3: 8, 4: 16}, 3: {1: 3, 2: 9, 3: 27, 4: 81}, 4: {1: 4, 2: 16, 3: 64, 4: 256}}
print(kuadrat)