Bagaimana Anda membuat daftar daftar dalam satu daftar python?

Dalam tutorial ini, kita akan melihat cara meratakan daftar daftar dengan Python menjadi satu daftar melalui beberapa contoh. Misalkan Anda memiliki daftar daftar –

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

Yang ingin Anda ratakan menjadi satu daftar –

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

Bagaimana cara meratakan daftar daftar?

Ada sejumlah cara untuk meratakan daftar daftar dengan python. Anda dapat menggunakan pemahaman daftar, perpustakaan

['a','b','c','d','e','f','g','h','i']
_8, atau cukup mengulang daftar daftar menambahkan setiap item ke daftar terpisah, dll. Mari kita lihat mereka beraksi melalui contoh yang diikuti dengan penilaian runtime masing-masing

1. Metode naif – Ulangi daftar daftar

Di sini, kami mengulangi setiap item dari semua daftar berikutnya dalam loop bersarang dan menambahkannya ke daftar terpisah

# flatten list of lists
ls = [['a','b','c'],['d','e','f'],['g','h','i']]
 
# iterate through list of lists in a nested loop
flat_ls = []
for i in ls:
    for j in i:
        flat_ls.append(j)
 
# print
print("Original list:", ls)
print("Flattened list:", flat_ls)

Keluaran

Original list: [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']] 
Flattened list: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
_

Dalam contoh di atas, loop luar mengulang semua daftar berikutnya sementara loop dalam mengulang item di setiap daftar berikutnya dengan setiap item ditambahkan ke daftar

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

2. Menggunakan pemahaman daftar

Anda juga dapat menggunakan pemahaman daftar untuk melakukan hal yang sama seperti pada langkah sebelumnya tetapi dengan keterbacaan yang lebih baik dan eksekusi yang lebih cepat

# flatten list of lists
ls = [['a','b','c'],['d','e','f'],['g','h','i']]
 
# using list comprehension
flat_ls = [item for sublist in ls for item in sublist]
 
# print
print("Original list:", ls)
print("Flattened list:", flat_ls)
_

Keluaran

Original list: [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']]
Flattened list: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']

Di sini, kami menggunakan pemahaman daftar untuk membuat daftar yang diratakan dengan menyimpan setiap item dari setiap subdaftar di daftar daftar asli. Menggunakan pemahaman daftar mirip dengan perulangan bersarang tetapi memiliki keterbacaan yang lebih baik (dalam kasus penggunaan ini) dan lebih cepat (yang akan kita lihat nanti di artikel)

3. Menggunakan perpustakaan ['a','b','c','d','e','f','g','h','i']_8

Pustaka standar python

['a','b','c','d','e','f','g','h','i']
_8 menawarkan fungsionalitas praktis untuk bekerja dengan iterables. Di sini, kami memecah daftar daftar menjadi bagian-bagian individual dan kemudian menyatukannya menjadi satu iterable

import itertools
# flatten list of lists
ls = [['a','b','c'],['d','e','f'],['g','h','i']]
 
# using itertools
flat_ls = list(itertools.chain(*ls))
 
# print
print("Original list:", ls)
print("Flattened list:", flat_ls)

Keluaran

Original list: [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']]
Flattened list: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']

Dalam contoh di atas fungsi

# flatten list of lists
ls = [['a','b','c'],['d','e','f'],['g','h','i']]
 
# iterate through list of lists in a nested loop
flat_ls = []
for i in ls:
    for j in i:
        flat_ls.append(j)
 
# print
print("Original list:", ls)
print("Flattened list:", flat_ls)
2 digunakan untuk menggabungkan (atau merangkai bersama) iterables yang diteruskan sebagai parameter. Melewati
# flatten list of lists
ls = [['a','b','c'],['d','e','f'],['g','h','i']]
 
# iterate through list of lists in a nested loop
flat_ls = []
for i in ls:
    for j in i:
        flat_ls.append(j)
 
# print
print("Original list:", ls)
print("Flattened list:", flat_ls)
_3 ke sana menghasilkan daftar luar untuk dibongkar sebagai parameter yang kemudian dirangkai bersama. Contoh berikut mengilustrasikan hal ini dengan lebih baik

ls1 = list(itertools.chain([1,2,3],[4,5],[6]))
ls2 = list(itertools.chain(*[[1,2,3],[4,5],[6]]))
print(ls1)
print(ls2)

Keluaran

[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6]

Anda dapat melihat bahwa untuk

# flatten list of lists
ls = [['a','b','c'],['d','e','f'],['g','h','i']]
 
# iterate through list of lists in a nested loop
flat_ls = []
for i in ls:
    for j in i:
        flat_ls.append(j)
 
# print
print("Original list:", ls)
print("Flattened list:", flat_ls)
_4 kami meneruskan iterables yang ingin kami rangkai bersama sebagai parameter ke fungsi
# flatten list of lists
ls = [['a','b','c'],['d','e','f'],['g','h','i']]
 
# iterate through list of lists in a nested loop
flat_ls = []
for i in ls:
    for j in i:
        flat_ls.append(j)
 
# print
print("Original list:", ls)
print("Flattened list:", flat_ls)
2. Untuk
# flatten list of lists
ls = [['a','b','c'],['d','e','f'],['g','h','i']]
 
# iterate through list of lists in a nested loop
flat_ls = []
for i in ls:
    for j in i:
        flat_ls.append(j)
 
# print
print("Original list:", ls)
print("Flattened list:", flat_ls)
_6, karena kami mengirimkan satu daftar daftar, kami perlu membongkarnya ke iterables komponennya menggunakan
# flatten list of lists
ls = [['a','b','c'],['d','e','f'],['g','h','i']]
 
# iterate through list of lists in a nested loop
flat_ls = []
for i in ls:
    for j in i:
        flat_ls.append(j)
 
# print
print("Original list:", ls)
print("Flattened list:", flat_ls)
7

Sebagai alternatif, jika Anda tidak nyaman menggunakan

# flatten list of lists
ls = [['a','b','c'],['d','e','f'],['g','h','i']]
 
# iterate through list of lists in a nested loop
flat_ls = []
for i in ls:
    for j in i:
        flat_ls.append(j)
 
# print
print("Original list:", ls)
print("Flattened list:", flat_ls)
7, Anda dapat menggunakan fungsi
# flatten list of lists
ls = [['a','b','c'],['d','e','f'],['g','h','i']]
 
# iterate through list of lists in a nested loop
flat_ls = []
for i in ls:
    for j in i:
        flat_ls.append(j)
 
# print
print("Original list:", ls)
print("Flattened list:", flat_ls)
9 yang tidak mengharuskan Anda membongkar daftar Anda

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

Keluaran

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

Membandingkan metode untuk runtime

Sekarang mari kita bandingkan berbagai metode yang dibahas di atas untuk meratakan daftar daftar runtime

['a','b','c','d','e','f','g','h','i']
2
['a','b','c','d','e','f','g','h','i']
3
['a','b','c','d','e','f','g','h','i']
4
['a','b','c','d','e','f','g','h','i']
5
['a','b','c','d','e','f','g','h','i']
6
['a','b','c','d','e','f','g','h','i']
7

Dari tiga metode yang dibahas, kami menemukan menggunakan

# flatten list of lists
ls = [['a','b','c'],['d','e','f'],['g','h','i']]
 
# iterate through list of lists in a nested loop
flat_ls = []
for i in ls:
    for j in i:
        flat_ls.append(j)
 
# print
print("Original list:", ls)
print("Flattened list:", flat_ls)
2 sebagai yang tercepat dan menggunakan loop bersarang langsung sebagai yang paling lambat. Pemahaman daftar tidak hanya cepat tetapi dapat intuitif dan mudah dibaca untuk kasus seperti itu (yang singkat dan sederhana)

Dengan ini, kita sampai pada akhir tutorial ini. Kami membahas beberapa cara umum untuk meratakan daftar daftar dengan python bersama dengan contoh dan kinerja waktu prosesnya. Namun, ada metode lain juga. Contoh kode dan hasil yang ditampilkan dalam tutorial ini telah diimplementasikan di Jupyter Notebook dengan python (versi 3. 8. 3) inti

Tutorial tentang daftar python

  • Python – Periksa apakah suatu elemen ada dalam daftar
  • Python – Ulangi beberapa daftar secara paralel menggunakan zip()
  • Python – Meratakan daftar daftar menjadi satu daftar
  • Pandas DataFrame ke Daftar dengan Python
  • Python – Konversi Daftar ke String
  • Ubah array Numpy menjadi Daftar – Dengan Contoh
  • Pemahaman Daftar Python – Dengan Contoh
  • Indeks Daftar Python – Dengan Contoh
  • Frekuensi Item Hitung Daftar Python
  • Panjang Daftar Python
  • Python Urutkan daftar – Dengan Contoh
  • Python Membalikkan Daftar – Dengan Contoh
  • Python Hapus Duplikat dari Daftar
  • Daftar Python menambahkan, memperluas dan menyisipkan fungsi
  • Hapus daftar Python, fungsi pop dan clear


Berlangganan buletin kami untuk panduan dan tutorial yang lebih informatif
Kami tidak melakukan spam dan Anda dapat memilih keluar kapan saja


Pengarang

  • Bagaimana Anda membuat daftar daftar dalam satu daftar python?
    Bagaimana Anda membuat daftar daftar dalam satu daftar python?

    Piyush Raj

    Piyush adalah seorang profesional data yang bersemangat menggunakan data untuk memahami berbagai hal dengan lebih baik dan membuat keputusan berdasarkan informasi. Di masa lalu, dia bekerja sebagai Ilmuwan Data untuk ZS dan memegang gelar teknik dari IIT Roorkee. Hobinya termasuk menonton kriket, membaca, dan mengerjakan proyek sampingan

    Bagaimana cara mengonversi daftar daftar menjadi satu daftar?

    Dalam artikel ini, kami akan membahas 5 pendekatan berbeda untuk mendatar daftar daftar. .
    Menggunakan loop bersarang
    Menggunakan pemahaman daftar
    Menggunakan rekursi
    Menggunakan modul NumPy
    Menggunakan metode sum() bawaan Python

    Bagaimana cara membuat daftar dalam banyak daftar dengan Python?

    Menggunakan + operator . Kami hanya menerapkan operator di antara nama daftar dan hasil akhir disimpan dalam daftar yang lebih besar. Urutan elemen dalam daftar dipertahankan.

    Bagaimana cara membuat daftar bersarang menjadi satu daftar dengan Python?

    Gunakan fungsi sum() untuk menggabungkan daftar bersarang ke satu daftar dengan meneruskan daftar kosong sebagai argumen kedua padanya .

    Bagaimana cara menambahkan beberapa daftar ke satu daftar?

    Menggunakan + operator untuk menambahkan beberapa daftar sekaligus . Logika serupa diperluas dalam kasus beberapa daftar.