Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Kembangkan senarai ke dalam elemen individu menggunakan Python

Kembangkan senarai ke dalam elemen individu menggunakan Python

WBOY
WBOYke hadapan
2023-09-08 23:57:03920semak imbas

Kembangkan senarai ke dalam elemen individu menggunakan Python

Senarai ialah struktur data yang berkuasa dalam Python yang boleh menyimpan pelbagai jenis nilai. Kami mungkin menemui senarai bersarang di mana item itu sendiri adalah senarai. Dalam kes ini, mungkin penting untuk meratakan senarai dan mendapatkan semula elemen individu daripada hierarki. Dalam Python, kami mempunyai beberapa fungsi terbina dalam - chain(), extend() dan append() yang boleh digunakan untuk menyelesaikan masalah meratakan senarai menjadi satu elemen.

Mari kita ambil contoh:

Masuk

# Flatten List
my_list = [[11, 21, 31], [20, 30, 40], [4, 5, 6], [1, 2, 3]]

Output

# individual element in the list
[11, 21, 31, 20, 30, 40, 4, 5, 6, 1, 2, 3]

Tatabahasa

Semua contoh menggunakan sintaks berikut -

itertools.chain()

itertools ialah nama modul yang menyediakan fungsi terbina dalam rantai(). Fungsi ini mengambil berbilang iterator sebagai argumen dan mengembalikan satu iterator.

extend()

extend() ialah kaedah terbina dalam Python yang digunakan untuk menambah elemen senarai tertentu pada penghujung senarai semasa.

append()

append() ialah kaedah terbina dalam Python yang menambahkan elemen pada penghujung senarai.

[[],[],[]]

Perwakilan di atas menggambarkan struktur senarai bersarang.

Gunakan gelung bersarang

Atur cara menggunakan gelung bersarang untuk mengulangi subsenarai dan menggunakan kaedah append() untuk membantu

Contoh

Dalam contoh berikut, atur cara dimulakan dengan mentakrifkan fungsi yang dipanggil flatten_list yang menerima hujah lst (untuk menerima nilai senarai input). Kemudian buat senarai kosong dalam pembolehubah yang diratakan yang akan menyimpan senarai yang mengandungi elemen individu. Seterusnya, gunakan gelung bersarang untuk untuk mengulangi setiap subsenarai dalam senarai dan gunakan append() untuk menukar subsenarai kepada satu elemen. Kemudian gunakan kembali fungsi untuk mendapatkan senarai baharu. Sekarang buat senarai Flatten dalam pembolehubah nested_list dan simpannya dalam pembolehubah f_list menggunakan pembolehubah yang sama seperti argumen dalam fungsi panggilan. Akhir sekali, kami mencetak hasilnya dengan bantuan pembolehubah f_list.

def flatten_list(lst):
    flattened = []
    for sublist in lst:
        for item in sublist:
            flattened.append(item)
    return flattened

# Create the flattened list
nested_list = [[10, 20, 30], [40, 50, 60], [70, 80, 90]]
# Calling function used in the variable
f_list = flatten_list(nested_list)
print("The individual element in the list:\n", f_list)

Output

 The individual element in the list:
 [10, 20, 30, 40, 50, 60, 70, 80, 90]

Gunakan pemahaman senarai

Program ini menggunakan pemahaman senarai di mana gelung bersarang dilaksanakan untuk menukar Senarai Ratakan kepada elemen tunggal.

Contoh

Dalam contoh berikut, anda memulakan program dengan mentakrifkan fungsi yang dipanggil flatten_list yang menerima parameter yang dipanggil lst yang menyimpan nilai senarai input. Fungsi itu kemudian dikembalikan menggunakan pemahaman senarai, dengan gelung bersarang untuk berulang ke dalam subsenarai. Seterusnya, cipta senarai yang diratakan dan simpannya dalam n_list pembolehubah. Kemudian gunakan fungsi panggilan dalam f_list pembolehubah dan gunakan pembolehubah yang sama dalam fungsi cetakan untuk mendapatkan hasilnya.

def flatten_list(lst):
    return [item for sublist in lst for item in sublist]

# Create the flatten list
n_list = [[11, 21, 31], [41, 51, 61], [71, 81, 91]]
# calling function used in the variable
f_list = flatten_list(n_list)
print("The individual element in the list:\n", f_list)

Output

 The individual element in the list:
 [11, 21, 31, 41, 51, 61, 71, 81, 91]

Gunakan fungsi itertools.chain()

Ini ialah program Python yang menggunakan modul itertools untuk meratakan senarai bersarang. Fungsi flatten_list mengambil senarai bersarang sebagai hujah dan mengembalikan senarai baharu yang mengandungi semua elemen dalam subsenarai. Fungsi itertools.chain menggabungkan semua subsenarai menjadi objek boleh lelaran, yang kemudiannya ditukar kepada senarai menggunakan fungsi senarai. Atur cara kemudian mencipta senarai bersarang yang dipanggil nested_list, memanggil fungsi flatten_list menggunakan senarai sebagai argumen, dan memberikan hasilnya kepada pembolehubah flattened_list.

Contoh

Dalam contoh di bawah, mulakan program dengan mengimport modul yang dipanggil itertools yang akan membantu menukar senarai rata kepada elemen individu. Kemudian mula mencipta fungsi flatten_list yang menerima parameter lst

import itertools
def flatten_list(lst):
    return list(itertools.chain(*lst))
# Create the flatten list
nested_list = [[12, 22, 32], [42, 52, 62], [72, 82, 92]]
# Calling function used in the variable
flattened_list = flatten_list(nested_list)
print("The individual element in the list:\n", flattened_list)

Output

 The individual element in the list:
 [12, 22, 32, 42, 52, 62, 72, 82, 92]

Gunakan rekursi

Atur cara ini menggunakan fungsi rekursif untuk mengendalikan meratakan senarai dan menggunakan fungsi isintance() terbina dalam yang akan menyemak keadaan jenis objek dan membantu menjana senarai elemen individu yang diratakan.

Contoh

Dalam contoh di bawah, atur cara meratakan senarai yang dibina secara lelaran dengan mengekstrak setiap elemen. Ia kemudian mencetak senarai rata yang mengandungi semua elemen individu dalam senarai bersarang.

def flatten_list(lst):
    emp_list = []
    for item in lst:
        if isinstance(item, list):
            emp_list.extend(flatten_list(item))
        else:
            emp_list.append(item)
    return emp_list


# Create the flatten list
nested_list = [[81, 82, 83], [84, 85, 86], [87, 88, 89, 99, 100]]
f_list = flatten_list(nested_list)
print("The individual element in the list:\n", f_list)

Output

 The individual element in the list:
 [81, 82, 83, 84, 85, 86, 87, 88, 89, 99, 100]

Kesimpulan

Kami membincangkan pelbagai cara untuk menyelesaikan pernyataan masalah. Kami melihat bagaimana senarai merata akan memberi kami kemahiran penting, membolehkan kami bekerja dengan struktur data yang kompleks dan mengakses elemen individu dengan lebih cekap. Selain itu, mengetahui cara meratakan senarai boleh berguna sama ada kami sedang mengusahakan pemprosesan data, penyelesaian masalah algoritma atau sebarang tugasan atau tugas pengaturcaraan Python yang lain.

Atas ialah kandungan terperinci Kembangkan senarai ke dalam elemen individu menggunakan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam