Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mencari Persimpangan Senarai Bersarang dalam Python?

Bagaimana untuk Mencari Persimpangan Senarai Bersarang dalam Python?

Susan Sarandon
Lepaskan: 2024-11-27 22:26:13
asal
763 orang telah melayarinya

How to Find the Intersection of Nested Lists in Python?

Persilangan Senarai Bersarang

Menentukan persilangan dua senarai rata adalah mudah menggunakan operasi set atau pemahaman senarai. Walau bagaimanapun, cabaran timbul apabila berurusan dengan senarai bersarang.

Penyelesaian:

Untuk mencari persimpangan senarai bersarang, di mana kedua-dua senarai mengandungi subsenarai, anda boleh memanfaatkan persimpangan kaedah struktur data yang ditetapkan. Dengan menggunakan kaedah ini, anda boleh mengekstrak elemen biasa antara dua senarai sambil mengabaikan struktur bersarang.

Berikut ialah contoh untuk menunjukkan pendekatan ini:

c1 = [1, 6, 7, 10, 13, 28, 32, 41, 58, 63]
c2 = [[13, 17, 18, 21, 32], [7, 11, 13, 14, 28], [1, 5, 6, 8, 15, 16]]

# Create a set from the flat list
s1 = set(c1)

# Create a set of sets from the nested list
s2 = {set(x) for x in c2}

# Find the intersection of the sets
c3 = [list(s1.intersection(x)) for x in s2]
Salin selepas log masuk

Dalam contoh ini, hasil c3 akan mengandungi persilangan senarai bersarang c1 dan `c2':

c3 = [[13, 32], [7, 13, 28], [1, 6]]
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mencari Persimpangan Senarai Bersarang dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan