Apa istilah "Ratakan"?
Istilah "perataan" dalam pemrograman menjelaskan pengambilan daftar sublist bersarang dan menampilkan satu daftar dengan semua nilai dari sublist digabungkan menjadi satu
Perataan adalah prosedur mengubah beberapa koleksi menjadi satu koleksi yang berisi semua elemen dalam koleksi yang Anda miliki sebelumnya
Apa itu Daftar Python?
Daftar ini adalah salah satu struktur data paling fleksibel di Python. Mengubah daftar menjadi daftar disebut "meratakan daftar"
Daftar Python dapat berisi banyak dimensi. Ini berarti Anda memiliki daftar di dalam daftar. Kadang-kadang disebut "daftar bersarang", ini dapat diubah kembali menjadi daftar biasa
Ada dua jenis daftar bersarang
- Daftar bersarang tidak beraturan
- Daftar bersarang reguler
Setiap elemen dari daftar ini adalah sublist, sehingga mengikuti keseragaman jenis elemen. Setiap elemen dari daftar ini adalah subdaftar atau item non-daftar. Oleh karena itu, ada ketidakteraturan dalam hal jenis elemen
Apa yang Anda maksud dengan meratakan daftar?
Meratakan daftar berarti mengambil daftar subdaftar bersarang dan mengembalikan satu daftar yang berisi semua nilai subdaftar. Pertama, mari kita lihat cara meratakan daftar dalam pemrograman Python
Daftar datar Python
3 cara mudah untuk meratakan daftar dengan Python
- Menggunakan pemahaman daftar
- Menggunakan itertools. rantai() metode
- Menggunakan metode numpy concatenate() dan flat()
Pendekatan 1. Gunakan pemahaman daftar
Pemahaman daftar menawarkan sintaks yang lebih singkat saat Anda ingin membuat daftar baru berdasarkan nilai dari daftar yang ada
Pemahaman daftar terdiri dari tanda kurung yang berisi ekspresi yang dieksekusi untuk setiap elemen dan perulangan for untuk mengulangi setiap elemen
Anda dapat menggunakan pemahaman daftar untuk membuat daftar baru dengan meratakan daftar yang sudah ada
original_list = [[11, 21, 30], [19, 63, 71], [81, 99]] flatten_list = [element for sublist in original_list for element in sublist] print("Original list", original_list) print("Flattened list", flatten_list)Keluaran
Original list [[11, 21, 30], [19, 63, 71], [81, 99]] Flattened list [11, 21, 30, 19, 63, 71, 81, 99]_Anda dapat melihat bahwa kami telah meratakan daftar.
Pemahaman daftar menyediakan cara ringkas untuk membuat daftar
Pendekatan 2. Menggunakan itertools
Menggunakan itertools sangat ideal untuk mengubah daftar 2D menjadi satu daftar datar. Ini karena ia memperlakukan urutan yang berurutan sebagai urutan tunggal dengan mengulang melalui iterable yang diteruskan sebagai argumen secara berurutan
import itertools original_list = [[11, 21, 30], [19, 63, 71], [81, 99]] flatten_list = list(itertools.chain(*original_list)) print("Original list", original_list) print("Flattened list", flatten_list)Keluaran
Original list [[11, 21, 30], [19, 63, 71], [81, 99]] Flattened list [11, 21, 30, 19, 63, 71, 81, 99]_Dan kami mendapat daftar rata di output
Meskipun itertools adalah cara yang efektif untuk meratakan daftar, ini lebih maju daripada pendekatan terakhir yang telah kita bahas
Ini karena Anda harus mengimpor itertools ke dalam kode Anda yang memperkenalkan ketergantungan baru. Selain itu, metode chain() melibatkan pembongkaran yang mungkin sulit untuk dipahami
Pendekatan 3. Menggunakan numpy (concatenate() dan flat())
Untuk meratakan daftar daftar dengan Python, gunakan np. gabungkan() dan np. fungsi datar()
Numpy menawarkan operasi umum, termasuk menggabungkan array 2D reguler berdasarkan baris atau kolom. Kami juga menggunakan atribut flat untuk mendapatkan iterator 1D di atas array untuk mencapai tujuan kami
import numpy as np original_list = [[11, 21, 30], [19, 63, 71], [81, 99]] flatten_list = list(np.concatenate(original_list).flat) print("Original list", original_list) print("Flattened list", flatten_list)_Keluaran
Original list [[11, 21, 30], [19, 63, 71], [81, 99]] Flattened list [11, 21, 30, 19, 63, 71, 81, 99]_Anda dapat melihat bahwa kita meratakan daftar asli menjadi daftar rata menggunakan list(), np. gabungkan(), dan np. datar() metode
Kesimpulan
Pendekatan terbaik untuk meratakan daftar daftar dengan Python adalah dengan menggunakan pemahaman daftar. Ini akan membuat daftar rata baru dari yang sudah ada