Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mencari Persimpangan Senarai Bersarang dengan Cekap dalam Python?

Bagaimanakah Saya Boleh Mencari Persimpangan Senarai Bersarang dengan Cekap dalam Python?

Barbara Streisand
Lepaskan: 2024-12-04 05:40:11
asal
307 orang telah melayarinya

How Can I Efficiently Find Intersections of Nested Lists in Python?

Mencari Persimpangan Senarai Bersarang

Mendapatkan semula persimpangan daripada senarai bersarang menimbulkan cabaran yang berbeza daripada pendekatan mudah untuk senarai rata. Artikel ini meneroka penyelesaian untuk menentukan persimpangan senarai bersarang dengan cekap.

Seperti yang ditunjukkan dalam kandungan masalah, mencari persimpangan senarai rata boleh dicapai dengan mudah menggunakan persimpangan set:

b1 = [1,2,3,4,5,9,11,15]
b2 = [4,5,6,7,8]
print(set(b1) & set(b2))  # Output: {4, 5}
Salin selepas log masuk

Walau bagaimanapun , apabila berurusan dengan senarai bersarang seperti:

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]]
Salin selepas log masuk

pendekatan mudah gagal menghasilkan hasil yang diingini:

print(set(c1) & set(c2))  # Output: set([])
Salin selepas log masuk

Persimpangan yang kami sasarkan ialah:

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

Penyelesaian:

Penyelesaian terletak pada menukarkan bersarang senarai ke set, melakukan set persimpangan, dan kemudian membina semula senarai bersarang asal struktur:

# Convert nested lists to sets 
set_c1 = set(c1) 
set_c2 = [set(sublist) for sublist in c2]

# Compute intersections
intersections = [set_c1.intersection(sublist) for sublist in set_c2]

# Reconstruct nested list structure 
result = [[item for item in intersection] for intersection in intersections] 

# Print the result
print(result)  # Output: [[13, 32], [7, 13, 28], [1, 6]]
Salin selepas log masuk

Dengan memanfaatkan set persilangan dan set kefahaman, penyelesaian ini cekap mendapatkan semula persilangan senarai bersarang, mengekalkan strukturnya.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Persimpangan Senarai Bersarang dengan Cekap 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