Cara Flatten List of Lists di Python: Panduan Lengkap
Di Python, list itu super fleksibel. kita bisa menyimpan banyak item dalam satu variabel, bahkan bisa berisi list lain, sehingga muncul list of lists. Masalahnya, kadang kita butuh semua elemen itu dalam satu list saja. Tenang, ada beberapa cara untuk melakukan flattening di Python, dari yang simpel sampai yang lebih canggih.
1. Apa Itu List of Lists?
List of lists itu persis seperti namanya: sebuah list di mana setiap elemennya juga list.
nested_list = [[1, 2, 3], [4, 5], [6, 7, 8]]
Kalau mau menggabungkan semua elemen jadi satu list, kita perlu flatten.
2. Menggunakan List Comprehension
Ini cara paling Pythonic dan mudah dibaca. Ideal buat kebanyakan kasus.
nested_list = [[1, 2, 3], [4, 5], [6, 7, 8]]
flat_list = [item for sublist in nested_list for item in sublist]
print(flat_list)
List comprehension ini bekerja dengan dua for: pertama untuk tiap sublist, kedua untuk tiap item di sublist.
3. Menggunakan sum
dengan List Kosong
Cara ini agak unik: gunakan sum
dengan list kosong sebagai start value.
nested_list = [[1, 2, 3], [4, 5], [6, 7, 8]]
flat_list = sum(nested_list, [])
print(flat_list)
sum
akan menambahkan tiap sublist ke list kosong. Tapi ini lebih lambat dan kurang efisien dibanding list comprehension.
4. Flatten dengan Nested Depth Lebih Dalam (Rekursif)
Kalau list punya kedalaman berbeda-beda, cara di atas nggak cukup. Di sini kita butuh rekursi.
def flatten(nested_list):
flat_list = []
for item in nested_list:
if isinstance(item, list):
flat_list.extend(flatten(item))
else:
flat_list.append(item)
return flat_list
nested_list = [[1, [2, 3]], [4, [5, 6]], [7, 8]]
flat_list = flatten(nested_list)
print(flat_list)
Fungsi ini ngecek tiap item: kalau list, rekursif; kalau bukan, langsung masuk ke flat_list
.
Kesimpulan
Flatten list of lists itu hal yang umum di Python. Dari cara simpel pakai list comprehension, trik sum
, sampai rekursi untuk list bersarang dalam, semua punya kelebihan masing-masing. Kalau ngerti semua metode ini, kamu bakal lebih jago dalam menata data kompleks di Python.