27 cara meratakan daftar dengan python

Daftar adalah salah satu tipe data yang paling umum digunakan di Python dan digunakan untuk menyimpan banyak nilai dalam satu variabel. Daftar Daftar adalah daftar bersarang di mana setiap elemen dalam daftar adalah daftar itu sendiri. Meratakan daftar daftar berarti mengubah daftar 2D menjadi daftar dimensi tunggal

Ada berbagai cara untuk meratakan list atau daftar list. Mari selami untuk melihat bagaimana Anda bisa meratakan daftar atau daftar daftar dengan Python

Baca juga. Bagaimana cara membuat daftar dengan Python?


Apa itu daftar daftar?

Daftar Daftar atau daftar 2D adalah daftar bersarang di mana setiap elemen dalam daftar adalah daftar itu sendiri. Sebagai contoh

list1 = [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']]

Di sini, dalam contoh di atas, 'list1' adalah sebuah daftar, dan setiap elemen dalam daftar1 itu sendiri adalah sebuah daftar. Jadi, list1 adalah daftar dari daftar

Daftar memiliki jumlah yang pasti, dan semua elemen dalam daftar diindeks, dengan nol sebagai indeks pertama. Setiap elemen dalam daftar dirujuk melalui nomor indeksnya

Ada dua jenis daftar daftar. Reguler dan tidak teratur. Dalam daftar daftar Reguler, setiap elemen dari daftar itu adalah sublist, sedangkan, dalam daftar daftar Irregular, elemen dalam daftar dapat berupa sublist atau elemen tunggal. Sebagai contoh

Regular list of lists
list1 = [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']]

Irregular list of lists
list2 = [['a', 'b'], 'c', ['d', 'e', 'f'], ['g', 'h', 'i', 'j', 'k'], 'l']
_
Ratakan daftar daftar Menggunakan loop

Anda dapat menggunakan loop untuk meratakan daftar daftar

Meratakan Daftar daftar reguler

Lihat kode contoh yang diberikan di bawah ini untuk mengetahui bagaimana Anda dapat menggunakan loop untuk meratakan daftar daftar biasa

list1= [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']]
final_list = []

print("The original list is: ",list)

# iterate over the data using for loop
for element in list1:
    final_list += element

# printing the output - flatten list
print("The flatten list is: ", final_list)

Keluaran dari kode di atas adalah

The original list is: [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']]
The flatten list is: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']

Meratakan daftar daftar yang tidak beraturan

Lihat kode contoh yang diberikan di bawah ini untuk mengetahui bagaimana Anda dapat menggunakan loop untuk meratakan daftar daftar yang tidak beraturan

list1 = [1, 2, 3, [4, 5], 6, [[7], 8]]
final_list = []


print("original list is: ", list1)

def flat_list(list1):
    # using for loop to iterate over the list
    for element in list1:
        if type(element) == list:
            # recursively calling the same function with current element as new argument if the element is a list
            flat_list(element)
        else:
            final_list.append(element)

# calling the method to flatten the list
flat_list(list1)

# printing the final_list
print("flattened list is: ",final_list)
_

Keluaran dari kode di atas adalah

original list is: [1, 2, 3, [4, 5], 6, [[7]. 8]]
flattened list is: [1, 2, 3, 4, 5, 6, 7, 8]

Menggunakan NumPy

NumPy adalah paket dalam Python yang memberi Anda berbagai metode dan operasi untuk diterapkan pada array. Menggunakan metode concatenate() dan flat() dari paket NumPy, Anda dapat meratakan daftar daftar Anda menjadi sebuah daftar. Lihat kode contoh yang diberikan di bawah ini

import numpy 

list1= [[1, 2], [3, 4], [5, 6, 7]] 
final_list = list(numpy.concatenate(list1).flat)

print('Original list is: ', list1) 
print('Flattened list is: ', final_list)
_

Keluaran dari kode di atas adalah

Original list is: [[1, 2], [3, 4], [5, 6. 7]]
Flattened list is: [1, 2, 3, 4, 5, 6, 7]

Menggunakan paket Itertools

Paket Itertools di Python memiliki metode yang dikenal sebagai rantai, yang mengulang daftar dan mengembalikan elemen sebagai iterable, yang kemudian harus Anda ubah menjadi daftar. Periksa kode contoh yang diberikan di bawah ini

print("Original list is: ",list1)

# flattening the list using chain() method
final_list = list(itertools.chain(*list1))


print("Flattened list is: ",final_list)
_

Keluaran dari kode di atas adalah

Original list is: [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
Flattened list is: [1, 2, 3, 4, 5, 6, 7, 8, 9]
_

Dengan menggunakan salah satu cara yang diberikan di atas, Anda dapat meratakan daftar daftar Anda menjadi satu daftar

Baca juga. Bagaimana menemukan panjang daftar dengan Python?

27 cara meratakan daftar dengan python

Chetali Shah

Pembaca yang rajin dan mahasiswa teknik. Suka coding dan membaca buku. Selalu penasaran untuk mempelajari hal-hal baru 🙂

Metode menghilangkan dimensi dari daftar dikenal sebagai perataan daftar. Dimensi adalah koordinat yang diperlukan untuk menemukan objek dalam daftar. Beberapa dimensi dapat hadir dalam daftar Python. Ini berarti Anda memiliki daftar di dalam daftar. Daftar ini, juga dikenal sebagai "daftar bersarang", dapat diubah kembali menjadi daftar standar

Ini berarti Anda dapat menggabungkan semua nilai dari beberapa daftar menjadi satu. Proses mengubah daftar daftar menjadi satu daftar dikenal sebagai “perataan daftar. ”

Ratakan Daftar dengan Python

Dimungkinkan untuk meratakan daftar dengan Python dengan berbagai cara

  • Menggunakan strategi pemahaman berdasarkan daftar
  • Menggunakan loop for bersarang
  • Itertools. rantai() metode
  • Functools – kurangi
  • NumPy – gabungan
  • NumPy – datar
  • Menjumlahkan daftar dalam

Kami akan membahas metode ini dalam tutorial ini. Kami juga akan mengilustrasikan menggunakan berbagai contoh sehingga Anda dapat mulai meratakan daftar dalam kode Anda

Piton. Menggunakan Pemahaman Daftar untuk Meratakan Daftar

Pemahaman daftar Python membuat daftar baru dari konten yang lain. Dengan menentukan persyaratan atau penyesuaian dalam pemahaman, Anda dapat menyesuaikan setiap fitur ke dalam daftar baru Anda

DISARANKAN BACA

  • Cara menjalankan grep dengan Python

  • Cara menggambar 4 kotak dengan Python

Pemahaman adalah gula sintaksis untuk mengulangi daftar dan menghasilkan daftar baru dengan loop for. Ini berarti mereka berfungsi dengan cara yang sama seperti for loop, tetapi dengan sintaks yang berbeda

Sintaks untuk pemahaman daftar adalah sebagai berikut

Contoh 1. Menggunakan Pemahaman Daftar

nums = [8, 6, 4]
new_num = [num * 2 for num in nums]
print(new_num)

27 cara meratakan daftar dengan python
Contoh 1. Menggunakan Pemahaman Daftar

Setiap angka dalam daftar "angka" kami dikalikan dua sebagai hasil dari pemahaman ini

Contoh 2. Menggunakan Pemahaman Daftar

DISARANKAN BACA

  • Cara menjalankan grep dengan Python

  • Cara menggambar 4 kotak dengan Python

Kami memiliki pilihan daftar isian sandwich yang tersedia di restoran. Daftar daftar kami saat ini adalah sebagai berikut

foods = [
	["Onions and Tomatoes", "Hummus, Beetroot, and Lettuce"],
	["Cheese", "Egg"],
	["Ham", "Bacon", "Chicken Club", "Tuna"]
]

Daftar pertama berisi isian sandwich vegan, daftar kedua berisi isian sandwich vegetarian;

Daftar ini digabungkan menjadi satu daftar makanan. Daftar satu dimensi lebih mudah ditangani daripada daftar dua dimensi. Dalam daftar ini, tidak diperlukan lebih dari satu dimensi. Kami dapat menggunakan pemahaman daftar untuk menghapus dimensi kedua dari daftar kami

food_stuffs = [
	["Tomato and Cucumber", "apples, oranges, and pineapples"],
	["Pepperoni", "Parmesan"],
	["rice", "potatoes", "wheat flour", "bread"]
]
updated_food_list = [food for sublist in food_stuffs for food in sublist]
print(updated_food_list)

Pemahaman daftar ini melewati semua daftar dalam vektor Python “updated_food_list. ” Setelah itu, setiap nilai ditambahkan ke daftar utama. Kami mencetak daftar kami ke konsol setelah diproduksi

Keluaran

DISARANKAN BACA

  • Cara menjalankan grep dengan Python

  • Cara menggambar 4 kotak dengan Python

27 cara meratakan daftar dengan python
Contoh 2. Menggunakan Pemahaman Daftar

Daftar daftar kami telah diubah menjadi daftar datar dengan sukses. Alih-alih tiga daftar, semua bahan sekarang dimasukkan ke dalam satu

Ratakan Daftar dengan Python menggunakan Nested for Loop

Menggunakan loop Python bersarang, kita dapat mencapai hasil yang sama. Ketika for loop ada di dalam for loop lain, itu disebut sebagai “loop for bersarang. ” Cara lain untuk menyatakan perulangan for berikut adalah dengan pemahaman daftar kami

food_stuffs = [
	["Tomato and Cucumber", "apples, oranges, and pineapples"],
	["Pepperoni", "Parmesan"],
	["rice", "potatoes", "wheat flour", "bread"]
]
updated_food_list = []
for new_list in food_stuffs:
	for food in new_list:
		updated_food_list .append(food)

print(updated_food_list)

Kode kami menggunakan dua for loop untuk mengulangi setiap item daftar di setiap daftar dalam daftar daftar asli. Mari kita uji kode kita

27 cara meratakan daftar dengan python
Ratakan Daftar dengan Python Memanfaatkan Nested for Loop

Hasil dari aplikasi kita sama dengan hasil pemahaman daftar kita. Pemahaman daftar hampir selalu lebih disukai daripada perulangan for. Pemahaman daftar lebih sederhana dan lebih mudah dibaca daripada loop for bersarang dalam situasi ini

Ratakan Daftar dengan Python menggunakan Itertools

Itertools adalah modul pustaka standar Python. Yang terakhir adalah alat yang memungkinkan Anda untuk mengulangi satu set. Modul ini mencakup beberapa metode untuk bekerja dengan objek dan generator yang dapat diubah

DISARANKAN BACA

  • Cara menjalankan grep dengan Python

  • Cara menggambar 4 kotak dengan Python

Kami menggunakan formulir chain() untuk tujuan kami. Metode ini mengambil daftar daftar sebagai argumen dan mengembalikan daftar yang diratakan

Mulailah dengan menggunakan pernyataan impor Python untuk memasukkan modul itertools ke dalam kode kita

import itertools

Kemudian, untuk meratakan daftar, tentukan daftar daftar dan gunakan metode chain()

food_stuffs = [
	["Tomato and Cucumber", "apples, oranges, and pineapples"],
	["Pepperoni", "Parmesan"],
	["rice", "potatoes", "wheat flour", "bread"]
]

updated_food_list = itertools.chain(*food_stuffs)

Untuk membongkar daftar kami, kami menggunakan simbol * dalam kode kami. Ini mengubah daftar kita menjadi argumen fungsi, yang akan diuraikan oleh metode chain()

Itertools. objek rantai dikembalikan oleh proses rantai(). Kita harus mengonversi objek ini menjadi daftar untuk melihat daftar rata kita. Metode list() digunakan untuk mencapai hal ini

DISARANKAN BACA

  • Cara menjalankan grep dengan Python

  • Cara menggambar 4 kotak dengan Python

import itertools
food_stuffs = [
	["Tomato and Cucumber", "apples, oranges, and pineapples"],
	["Pepperoni", "Parmesan"],
	["rice", "potatoes", "wheat flour", "bread"]
]

updated_food_list = itertools.chain(*food_stuffs)
print(list(updated_food_list))

27 cara meratakan daftar dengan python
Meratakan Daftar di Python Itertools adalah alat yang memungkinkan Anda untuk mengulangi satu set

Kode kami telah meratakan daftar kami

Meskipun itertools adalah alat yang ampuh untuk meratakan daftar, ini lebih canggih daripada dua metode sebelumnya

Ini karena Anda harus menyertakan itertools dalam kode Anda, yang menambahkan ketergantungan baru
Selain itu, metode chain() memerlukan pembongkaran, yang dapat membingungkan

Cara Meratakan Daftar Daftar

Di Python, daftar adalah struktur data yang paling serbaguna. Daftar 2D, juga dikenal sebagai daftar daftar, adalah objek daftar di mana setiap item adalah daftar dalam dirinya sendiri – misalnya, [[1,2,3], [4,5,6], [7

Meratakan daftar daftar melibatkan un-nesting setiap item daftar yang terdapat dalam daftar daftar, mengubah [[1, 2, 3], [4, 5, 6], [7, 8, 9]] menjadi [1, 2

DISARANKAN BACA

  • Cara menjalankan grep dengan Python

  • Cara menggambar 4 kotak dengan Python

Bergantung pada keteraturan dan cakupan daftar bersarang, perataan dapat dilakukan dengan loop for bersarang, pemahaman daftar, rekursi, fungsi bawaan, atau mengimpor pustaka dengan Python

Daftar Bersarang Hadir dalam Berbagai Bentuk

Karena Python adalah bahasa yang diketik dengan lemah, Anda akan menemukan daftar daftar yang normal dan tidak teratur

Daftar Daftar secara teratur

Setiap item dalam daftar ini adalah sublist, mengikuti keseragaman tipe elemen
[[100, 200, 300], [400, 500, 600], [800, 900]] adalah contoh daftar standar daftar, [[100, 200, 300], [400, 500, 600],

Daftar Daftar dalam Urutan Tidak Biasa (tidak teratur)

Elemen daftar ini adalah item subdaftar atau non-daftar. Misalnya, bilangan bulat atau string. Dengan demikian, ada perbedaan dalam bentuk elemen. [[100, 200, 300], [400, 500], 600], di mana [[100, 200, 300], [400, 500], dan 600 masing-masing bertipe list dan int

DISARANKAN BACA

  • Cara menjalankan grep dengan Python

  • Cara menggambar 4 kotak dengan Python

Bersarang untuk Loops untuk meratakan Daftar Daftar

Ini adalah metode brute force untuk membuat daftar datar dengan memilih setiap elemen dari daftar daftar dan menempatkannya dalam daftar 1D

  • Buat daftar daftar dengan data dummy dan beri nama data
  • Buat daftar kosong bernama daftar datar sekarang
  • Ulangi detailnya
  • Hapus semua item dari daftar saat ini
  • Menggunakan proses penambahan daftar, tambahkan mereka ke daftar datar
  • Hasilnya harus dicetak

Kode ini mudah dipahami dan bekerja dengan daftar daftar biasa dan tidak teratur, seperti yang ditunjukkan di bawah ini

Contoh 1. Nested for Loops untuk Meratakan Daftar Daftar

# flattenListUsingForLoop.py

def flattenListUsingForLoop(two_d_list):
    new_flat_list = []

    # outer list iteration

    for item in two_d_list:
        if type(item) is list:
            # If the item is of type list, do sublist iteration

            for _item in item:
                new_flat_list .append(_item)
        else:
            new_flat_list .append(item)
    return  new_flat_list

the_nested_list = [[100, 200, 300], [400, 500, 600], [800, 900]]
print('Initial List: ', the_nested_list )
print('Flattened List: ', flattenListUsingForLoop(the_nested_list ))

27 cara meratakan daftar dengan python
Contoh 1. Nested for Loops untuk Meratakan Daftar Daftar

Contoh 2. Nested for Loops untuk Meratakan Daftar Daftar

# initialize the initial_data and an empty list called new_flat_list
initial_data = [[100, 200, 300], [400, 500, 600], [800, 900]]

new_flat_list = []

# iterating over the initial_data
for item in initial_data:
    # add items to the flat_list
    new_flat_list  += item

# printing the resultant new_flat_list 
print(new_flat_list )

27 cara meratakan daftar dengan python
Contoh 2. Nested for Loops untuk Meratakan Daftar Daftar

Contoh 3. Nested for Loops untuk Meratakan Daftar Daftar

DISARANKAN BACA

  • Cara menjalankan grep dengan Python

  • Cara menggambar 4 kotak dengan Python

# nestedforLoops.py
original_list = [[100, 200, 300], [400, 500, 600], [800, 900]] # Original list to be flattened
flattened_list = []

for i in range(len(original_list )): #Traversing through the main list
  for j in range (len(original_list [i])): #Traversing through each sublist
    flattened_list.append(original_list [i][j]) #Appending elements into our flat_list
    
print("Original List:",original_list )
print("New Flattened List:",flattened_list)

27 cara meratakan daftar dengan python
Contoh 3. Nested for Loops untuk Meratakan Daftar Daftar

Contoh 4. Nested for Loops untuk Meratakan Daftar Daftar

foods = [
	["Onions and Tomatoes", "Hummus, Beetroot, and Lettuce"],
	["Cheese", "Egg"],
	["Ham", "Bacon", "Chicken Club", "Tuna"]
]
_0

27 cara meratakan daftar dengan python
Contoh 4. Nested for Loops untuk Meratakan Daftar Daftar

Menggunakan pemahaman Daftar untuk meratakan daftar daftar

Metode ini membuat daftar datar berdasarkan daftar 2D yang ada dengan cara yang elegan namun kurang intuitif. Hasil yang dihasilkan adalah dari pernyataan kompak tunggal

Contoh 1. Menggunakan Pemahaman Daftar, ratakan daftar daftar

foods = [
	["Onions and Tomatoes", "Hummus, Beetroot, and Lettuce"],
	["Cheese", "Egg"],
	["Ham", "Bacon", "Chicken Club", "Tuna"]
]
_1

Keluaran

27 cara meratakan daftar dengan python
Contoh 1. Menggunakan Pemahaman Daftar, ratakan daftar daftar

Contoh 2. Menggunakan, Pemahaman Daftar, ratakan daftar daftar

DISARANKAN BACA

  • Cara menjalankan grep dengan Python

  • Cara menggambar 4 kotak dengan Python

foods = [
	["Onions and Tomatoes", "Hummus, Beetroot, and Lettuce"],
	["Cheese", "Egg"],
	["Ham", "Bacon", "Chicken Club", "Tuna"]
]
_2

27 cara meratakan daftar dengan python
Contoh 2. Menggunakan, Pemahaman Daftar, ratakan daftar daftar

Ratakan daftar daftar secara rekursif

Meratakan daftar 2D secara rekursif juga dimungkinkan. Kode berikut berfungsi pada daftar daftar biasa dan tidak teratur

foods = [
	["Onions and Tomatoes", "Hummus, Beetroot, and Lettuce"],
	["Cheese", "Egg"],
	["Ham", "Bacon", "Chicken Club", "Tuna"]
]
_3

keluaran

27 cara meratakan daftar dengan python
Ratakan daftar daftar secara rekursif

Memanfaatkan Perpustakaan

Anda juga dapat menggunakan pustaka Python untuk membantu Anda dalam hal ini. Daftar Daftar harus diratakan menggunakan functools (reduce() dan iconcat())
Fungsi iconcat() melakukan operasi penggabungan dasar pada item daftar, dari kiri ke kanan, untuk menguranginya menjadi satu daftar

Contoh 1. Memanfaatkan Perpustakaan

DISARANKAN BACA

  • Cara menjalankan grep dengan Python

  • Cara menggambar 4 kotak dengan Python

foods = [
	["Onions and Tomatoes", "Hummus, Beetroot, and Lettuce"],
	["Cheese", "Egg"],
	["Ham", "Bacon", "Chicken Club", "Tuna"]
]
_4

27 cara meratakan daftar dengan python
Contoh 1. Memanfaatkan Perpustakaan

Contoh 2. Memanfaatkan Perpustakaan

foods = [
	["Onions and Tomatoes", "Hummus, Beetroot, and Lettuce"],
	["Cheese", "Egg"],
	["Ham", "Bacon", "Chicken Club", "Tuna"]
]
_5

27 cara meratakan daftar dengan python
Contoh 2. Memanfaatkan Perpustakaan

Contoh 3. Memanfaatkan Perpustakaan

foods = [
	["Onions and Tomatoes", "Hummus, Beetroot, and Lettuce"],
	["Cheese", "Egg"],
	["Ham", "Bacon", "Chicken Club", "Tuna"]
]
_6

27 cara meratakan daftar dengan python
Contoh 3. Memanfaatkan Perpustakaan

Daftar Daftar harus diratakan oleh itertools. rantai()

Karena ia memperlakukan urutan berurutan sebagai urutan tunggal dengan mengulang melalui iterable yang diteruskan sebagai argumen secara berurutan, metode ini cocok untuk mengonversi daftar 2-D menjadi daftar datar tunggal

Contoh 1. Ratakan Daftar Daftar oleh itertools. rantai()

foods = [
	["Onions and Tomatoes", "Hummus, Beetroot, and Lettuce"],
	["Cheese", "Egg"],
	["Ham", "Bacon", "Chicken Club", "Tuna"]
]
_7

27 cara meratakan daftar dengan python
Daftar Daftar harus diratakan oleh itertools. rantai()

Contoh 2. Ratakan Daftar Daftar oleh itertools. rantai()

DISARANKAN BACA

  • Cara menjalankan grep dengan Python

  • Cara menggambar 4 kotak dengan Python

foods = [
	["Onions and Tomatoes", "Hummus, Beetroot, and Lettuce"],
	["Cheese", "Egg"],
	["Ham", "Bacon", "Chicken Club", "Tuna"]
]
_8

27 cara meratakan daftar dengan python
Contoh 2. Ratakan Daftar Daftar oleh itertools. rantai()

Daftar Daftar harus diratakan Menggunakan NumPy (flat () dan concatenate ())

Menggabungkan array 2D standar berdasarkan baris atau kolom adalah salah satu operasi NumPy yang paling umum. Untuk mencapai target kami, kami juga menggunakan atribut flat untuk mendapatkan iterator 1D di atas daftar. Namun, metode ini relatif lambat

foods = [
	["Onions and Tomatoes", "Hummus, Beetroot, and Lettuce"],
	["Cheese", "Egg"],
	["Ham", "Bacon", "Chicken Club", "Tuna"]
]
_9

27 cara meratakan daftar dengan python
Daftar Daftar harus diratakan Menggunakan NumPy (flat() dan concatenate())

Menggunakan Fungsi bawaan

Ratakan daftar menggunakan fungsi sum()

Untuk meratakan daftar, Anda dapat menggunakan fungsi bawaan sum()

Argumen penjumlahan kedua dapat digunakan untuk menentukan nilai awal (). Operasi + pada daftar akan menggabungkan daftar jika Anda memindahkan daftar kosong []

Dengan Python, Anda dapat menambahkan item baru ke daftar (tambahkan, perpanjang, sisipkan)
Karena nilai default dari pernyataan kedua adalah 0, jika dihilangkan, operasi + dengan int dan list akan menghasilkan error

Contoh 1. Ratakan daftar menggunakan fungsi sum()

DISARANKAN BACA

  • Cara menjalankan grep dengan Python

  • Cara menggambar 4 kotak dengan Python

food_stuffs = [
	["Tomato and Cucumber", "apples, oranges, and pineapples"],
	["Pepperoni", "Parmesan"],
	["rice", "potatoes", "wheat flour", "bread"]
]
updated_food_list = [food for sublist in food_stuffs for food in sublist]
print(updated_food_list)
0

keluaran

27 cara meratakan daftar dengan python
Contoh 1. Ratakan daftar menggunakan fungsi sum()

Menerapkan operator +=

Operator += di Python memungkinkan Anda untuk melakukan operasi daftar seperti penggabungan. Anda dapat menggunakan operator + atau += untuk memasukkan input berantai sebagai berikut

Contoh. Menerapkan operator +=

food_stuffs = [
	["Tomato and Cucumber", "apples, oranges, and pineapples"],
	["Pepperoni", "Parmesan"],
	["rice", "potatoes", "wheat flour", "bread"]
]
updated_food_list = [food for sublist in food_stuffs for food in sublist]
print(updated_food_list)
1

27 cara meratakan daftar dengan python
Contoh. Menerapkan operator +=

Menggunakan Lambda untuk meratakan daftar daftar

Kata kunci lambda dapat digunakan untuk mendeskripsikan fungsi anonim. Daftar reguler/tidak teratur diteruskan ke fungsi anonim ini sebagai argumen, dan ekspresi dievaluasi untuk menghasilkan daftar 1D datar

Contoh 1. Menggunakan Lambda untuk meratakan daftar daftar

DISARANKAN BACA

  • Cara menjalankan grep dengan Python

  • Cara menggambar 4 kotak dengan Python

food_stuffs = [
	["Tomato and Cucumber", "apples, oranges, and pineapples"],
	["Pepperoni", "Parmesan"],
	["rice", "potatoes", "wheat flour", "bread"]
]
updated_food_list = [food for sublist in food_stuffs for food in sublist]
print(updated_food_list)
2

27 cara meratakan daftar dengan python
Contoh 1. Menggunakan Lambda untuk meratakan daftar daftar

Contoh 2. Menggunakan Lambda untuk meratakan daftar daftar

food_stuffs = [
	["Tomato and Cucumber", "apples, oranges, and pineapples"],
	["Pepperoni", "Parmesan"],
	["rice", "potatoes", "wheat flour", "bread"]
]
updated_food_list = [food for sublist in food_stuffs for food in sublist]
print(updated_food_list)
3

27 cara meratakan daftar dengan python
Contoh 2. Menggunakan Lambda untuk meratakan daftar daftar

Pilihan lain adalah menambahkan daftar dalam bersama. Fungsi mengambil dua parameter. iterable, yang merupakan daftar daftar, dan mulai, yang dalam kasus kami adalah daftar kosong yang berfungsi sebagai daftar datar awal tempat item dari subdaftar dalam ditambahkan

Metode ini nyaman karena tidak memerlukan impor apa pun, tetapi lebih lambat daripada itertools() dan chain() ketika jumlah sublist besar

Untuk Meratakan daftar multi-level

food_stuffs = [
	["Tomato and Cucumber", "apples, oranges, and pineapples"],
	["Pepperoni", "Parmesan"],
	["rice", "potatoes", "wheat flour", "bread"]
]
updated_food_list = [food for sublist in food_stuffs for food in sublist]
print(updated_food_list)
4

27 cara meratakan daftar dengan python
Untuk Meratakan daftar multi-level

Pikiran Akhir

Kita telah membahas berbagai pendekatan untuk meratakan daftar, termasuk pengulangan for bersarang, pemahaman daftar, meratakan daftar secara rekursif, menggunakan NumPy untuk meratakan daftar daftar, menggunakan Lambda untuk meratakan daftar daftar, menggunakan fungsi bawaan . rantai() metode. Dalam banyak kasus, pemahaman daftar lebih disukai karena merupakan bentuk yang paling "Pythonic".

Meskipun perulangan for bersarang efektif, mereka membutuhkan lebih banyak baris kode daripada pemahaman daftar. Itertools. metode chain() juga berguna, tetapi tidak mudah dipahami oleh pemula

DISARANKAN BACA

  • Cara menjalankan grep dengan Python

  • Cara menggambar 4 kotak dengan Python

Saat Python menyediakan semua sumber daya, dan ada kebutuhan untuk meratakan daftar, biasanya tidak perlu mengimpor pustaka baru — itertools

Bagaimana Anda meratakan daftar dengan Python?

Pendekatan untuk meratakan daftar .
List_2D = [[1,2,3],[4,5,6],[7,8,9]] #Daftar yang akan diratakan. List_flat = [] ​ untuk i dalam rentang(len(List_2D)). #Melintasi daftar utama. .
impor alat fungsi. operator impor. ​.
import itertools. ​ Daftar_2D = [[1,2,3],[4,5,6],[7,8,9]] #Daftar yang akan diratakan

Bagaimana cara meratakan daftar daftar?

Meratakan daftar daftar memerlukan mengonversi daftar 2D menjadi daftar 1D dengan menghapus sarang setiap item daftar yang disimpan dalam daftar daftar . e. , mengubah [[1, 2, 3], [4, 5, 6], [7, 8, 9]] menjadi [1, 2, 3, 4, 5, 6, 7, 8, 9].

Apa artinya ratakan daftar dengan Python?

Meratakan daftar daftar adalah proses mengubah daftar dua Dimensi menjadi daftar Satu Dimensi dengan menghapus setiap elemen daftar yang disimpan dalam daftar daftar, that is, transforming [[9, 8, 7], [6, 5, 4], [3, 2, 1]] to [9, 8, 7, 6, 5, 4, 3, 2, 1].

Fungsi apa yang meratakan daftar daftar Python?

Anda dapat menggunakan itertools. rantai. from_iterable() , sum() , dan daftar pemahaman. Gunakan ravel() atau flatten() untuk meratakan array NumPy ndarray.