Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Mencari Elemen Bersilang dalam Pelbagai Senarai Python dengan Cekap?

Bagaimana Mencari Elemen Bersilang dalam Pelbagai Senarai Python dengan Cekap?

Patricia Arquette
Patricia Arquetteasal
2024-10-21 22:03:31997semak imbas

How to Find Intersecting Elements in Multiple Python Lists Efficiently?

Mengenal pasti Elemen Dikongsi dalam Pelbagai Senarai Python

Dalam Python, mengekstrak persilangan dua senarai boleh dicapai menggunakan fungsi set.intersection(). Walau bagaimanapun, menentukan persilangan berbilang senarai menjadi lebih kompleks. Berikut ialah penyelesaian untuk mengenal pasti elemen yang dikongsi dengan cekap antara beberapa senarai:

Formula yang disediakan dalam jawapan, set.intersection(*map(set,d)), menawarkan cara yang ringkas dan berprestasi untuk mencari persimpangan antara berbilang senarai. Mari kita pecahkan komponennya:

  • d mewakili senarai senarai, dengan setiap elemen itu sendiri adalah senarai.
  • peta(set, d) menukar setiap senarai dalaman dalam d kepada a set, mengalih keluar elemen pendua dengan berkesan.
  • * membongkar tuple yang dijana oleh peta untuk menghantar setiap set sebagai parameter berasingan kepada set.intersection().

Dengan merantai operasi ini bersama-sama, kita memperoleh persilangan semua set (pada mulanya senarai) yang terkandung dalam senarai d. Dalam contoh yang diberikan:

<code class="python">d = [[1,2,3,4], [2,3,4], [3,4,5,6,7]]</code>

Kod set.intersection(*map(set,d)) akan menghasilkan hasil yang diingini:

<code class="python">[3, 4]</code>

Pendekatan ini memanfaatkan kecekapan tetapkan struktur data untuk menghapuskan pendua dengan cepat sambil mengekalkan susunan elemen yang dikongsi.

Atas ialah kandungan terperinci Bagaimana Mencari Elemen Bersilang dalam Pelbagai Senarai Python dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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