Mendapatkan semua elemen dari koleksi saat ini secara rekursif dan memasukkan semua konten ke dalam satu koleksi tunggal adalah operasi yang paling umum dalam Pemrograman. Memuat semua elemen ke dalam satu koleksi disebut "Perataan" Show
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
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 Python3 cara mudah untuk meratakan daftar dengan Python
Pendekatan 1. Gunakan pemahaman daftarPemahaman 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) KeluaranOriginal 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 itertoolsMenggunakan 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) KeluaranOriginal 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)_ KeluaranOriginal 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 KesimpulanPendekatan terbaik untuk meratakan daftar daftar dengan Python adalah dengan menggunakan pemahaman daftar. Ini akan membuat daftar rata baru dari yang sudah ada Bagaimana Anda meratakan daftar daftar dengan pemahaman daftar?Untuk meratakan daftar daftar, gunakan pernyataan pemahaman daftar [x for l in lst for x in l] . Untuk memodifikasi semua elemen dalam daftar daftar (mis. g. , tingkatkan satu per satu), gunakan pemahaman daftar pemahaman daftar [[x+1 for x in l] for l in lst].
Apa yang dilakukan flatten () dengan Python?flatten() fungsi. Fungsi flatten() digunakan untuk mendapatkan salinan dari larik tertentu yang diciutkan menjadi satu dimensi . 'C' berarti meratakan dalam urutan baris-utama (gaya-C). 'F' berarti meratakan dalam urutan kolom-utama (Fortran-style).
Bagaimana Anda meratakan daftar bersarang bersarang di Python?Berikan dua argumen ke metode sum(). my_list dan daftar kosong (mis. e. [ ] ) . sum() menggabungkan my_list dan [ ] untuk menghasilkan daftar yang rata.
Bagaimana Anda meratakan daftar bersarang daftar angka )?Anda dapat meratakan daftar Python menggunakan pemahaman daftar, pengulangan for bersarang, dan itertools. metode rantai() . Pemahaman daftar adalah metode yang paling "Pythonic" dan karena itu disukai dalam banyak kasus. Meskipun for loop bersarang efektif, mereka menggunakan lebih banyak baris kode daripada pemahaman daftar. |