


Python - Alih keluar subsenarai yang wujud dalam subsenarai lain
Python ialah perisian yang digunakan secara meluas yang mempunyai pelbagai tujuan dan pelbagai fungsi untuk melaksanakan tugas yang berbeza. Satu ciri berguna python ialah kefungsian senarai yang membantu dalam mengumpul dan menyimpan data yang berbeza tetapi banyak kali pengguna menghadapi masalah semasa memadamkan subsenarai yang sudah wujud dalam subsenarai lain. Jadi, dalam artikel ini, kita akan belajar cara memadamkan subsenarai berbeza yang sudah wujud dalam subsenarai lain.
Untuk memahami masalah dengan jelas, mari kita ambil contoh di mana kita perlu memadamkan subsenarai yang datanya sudah wujud dalam subsenarai lain.
Contoh
duplicate_list = [[Aayush, Shyam, John], [Shyam, John], [Henry, Joe], [David, Stefen, Damon], [David, Stefen]] #All the sublist whose data is already present in other sublist are to be removed
Output
Subsenarai bernama [Shyam,John] dan [David,Stefan] sudah mempunyai data yang sama dalam subsenarai lain, jadi subsenarai tambahan ini akan dipadamkan. Output sepatutnya kelihatan seperti ini:
new_list = [[Aayush, Shyam, John], [Henry, Joe], [David, Stefen, Damon]]
Sekarang kita akan belajar tentang cara berbeza untuk memadamkan subsenarai yang sudah wujud dalam subsenarai.
Di sini kami telah menyebut kaedah yang mungkin berbeza:
Senaraikan pemahaman
Cara paling mudah untuk memadam semua subsenarai yang terdapat dalam subsenarai lain adalah dengan bantuan pemahaman senarai. Semak semua subsenarai yang wujud dalam senarai dan salin yang tidak wujud dalam mana-mana subsenarai lain ke senarai baharu. Mari kita ambil contoh untuk memahami dengan lebih jelas:
Contoh
duplicate_list = [[Aayush, Shyam, John], [Shyam, John], [Henry, Joe], [David, Stefen, Damon], [David, Stefen]] New_list = [sublist for sublist in duplicate_list if not any(set(sublist) <= set(other) for other in duplicate_list if sublist is not other)] #We first check all the lists of the duplicate list through the any() function and then we check for any repeatation with the help of <= operator
Output
Selepas kod selesai, kami akan mencetak output kod di atas. Output kod di atas adalah seperti berikut:
[[Aayush, Shyam, John], [Henry, Joe], [David, Stefen, Damon]]
Semua subsenarai tambahan telah dialih keluar, jadi kami menulis kod yang betul untuk mengalih keluar subsenarai yang sudah ada dalam subsenarai.
Tentukan fungsi
Cara lain untuk menyelesaikan masalah ini ialah dengan mencipta fungsi berasingan yang benar-benar baharu yang menapis semua subsenarai yang wujud dalam subsenarai lain. Ini boleh dilakukan dengan menentukan syarat untuk fungsi dan membiarkannya berjalan dengan sewajarnya.
Contoh
def is_sublist(sublist, other): #is_sublist is the function defined return set(sublist) <= set(other) #the functions checks 2 sublists at a time and if the sublist already exists then it returns with `true` feedback and does not consider the extra sublist duplicate_list = [[Aayush, Shyam, John], [Shyam, John], [Henry, Joe], [David, Stefen, Damon], [David, Stefen]] new_list = [sublist for sublist in duplicate_list if not any(is_sublist(sublist, other) for other in duplicate_list if sublist is not other)]
Output
Keluaran kod di atas adalah seperti berikut:
[[Aayush, Shyam, John], [Henry, Joe], [David, Stefen, Damon]]
Semua subsenarai tambahan dialih keluar, jadi kami menulis kod yang betul untuk mengalih keluar semua subsenarai tambahan.
Bandingkan setiap senarai
Ini ialah kaedah yang sangat kompleks untuk memadamkan subsenarai yang sudah wujud dalam subsenarai lain. Dalam kaedah ini, semua subsenarai dibandingkan antara satu sama lain dan subsenarai bukan pendua disalin ke senarai baharu. Kita boleh memahami perkara ini dengan bantuan contoh berikut:
Contoh
duplicate_list = [[Aayush, Shyam, John], [Shyam, John], [Henry, Joe], [David, Stefen, Damon], [David, Stefen]] #A copy of duplicate list is created to avoid any errors in the original file new_list = duplicate_list[:] #Check each sublist present in the new_list for sublist in duplicate_list: for other in new_list: # Checking of presence of sublist present in other sublist is done if sublist != other and set(sublist).issubset(other): #issubset is used to check presence of one sublist in another sublist # Remove all the repeating sublist new_list.remove(sublist) break #break is used to stop the loop so that it does not keep checking continuosly print(new_list)
Output
Keluaran kod di atas adalah seperti berikut:
[[Aayush, Shyam, John], [Henry, Joe], [David, Stefen, Damon]]
Kaedah ini lebih sesuai apabila senarai terlalu panjang dan mengandungi sejumlah besar subsenarai dengan banyak elemen.
Sediakan operasi
Dalam operasi ini, subsenarai yang sedia ada dalam subsenarai lain dipadamkan dengan bantuan operasi set. Dalam pendekatan ini kita boleh menukar setiap subsenarai dalam senarai kepada satu set dan dengan bantuan operasi yang berbeza kita boleh mengalih keluar semua subsenarai yang terdapat dalam subsenarai lain. Kita boleh memahaminya dengan lebih jelas melalui contoh berikut:
Contoh
duplicate_list = [[Aayush, Shyam, John], [Shyam, John], [Henry, Joe], [David, Stefen, Damon], [David, Stefen]] new_list = [] for sublist in duplicate_list: is_subset = False for other in duplicate_list: if sublist != other and set(sublist).difference(set(other)) == set(): #The difference operation is used to calculate the difference betwen two sets is_subset = True #When the sublist is present in another sublist the result of is_subset will be true break #Once the result is found to be true, the loop is broke and all the other sublist are copied into the new_list if not is_subset: new_list.append(sublist) print(new_list)
Output
Keluaran kod di atas adalah seperti berikut:
[[Aayush, Shyam, John], [Henry, Joe], [David, Stefen, Damon]]
Semua subsenarai yang terdapat dalam subsenarai lain telah dipadamkan.
Kesimpulan
Masalah memadamkan subsenarai yang sudah wujud dalam subsenarai lain adalah masalah yang sering dihadapi oleh pengguna, dan banyak kali ia mengakibatkan memakan banyak masa pengguna. Oleh itu, adalah mungkin untuk memadamkan semua subsenarai dengan cepat yang wujud dalam subsenarai lain menggunakan kaedah berbeza yang dicadangkan dalam artikel sebelumnya.
Atas ialah kandungan terperinci Python - Alih keluar subsenarai yang wujud dalam subsenarai lain. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Penyelesaian kepada Isu Kebenaran Semasa Melihat Versi Python di Terminal Linux Apabila anda cuba melihat versi Python di Terminal Linux, masukkan Python ...

Cara mengelakkan dikesan semasa menggunakan fiddlerevery di mana untuk bacaan lelaki-dalam-pertengahan apabila anda menggunakan fiddlerevery di mana ...

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam masa 10 jam? Sekiranya anda hanya mempunyai 10 jam untuk mengajar pemula komputer beberapa pengetahuan pengaturcaraan, apa yang akan anda pilih untuk mengajar ...

Apabila menggunakan Perpustakaan Pandas Python, bagaimana untuk menyalin seluruh lajur antara dua data data dengan struktur yang berbeza adalah masalah biasa. Katakan kita mempunyai dua DAT ...

Bagaimanakah Uvicorn terus mendengar permintaan HTTP? Uvicorn adalah pelayan web ringan berdasarkan ASGI. Salah satu fungsi terasnya ialah mendengar permintaan HTTP dan teruskan ...

Fastapi ...

Menggunakan Python di Terminal Linux ...

Memahami Strategi Anti-Crawling of Investing.com Ramai orang sering cuba merangkak data berita dari Investing.com (https://cn.investing.com/news/latest-news) ...
