Senaraikan Persimpangan di Python

List Intersection Python



Banyak pemboleh ubah objek ada di python untuk menyimpan pelbagai jenis data. The senarai adalah salah satu pemboleh ubah ini dan dapat menyimpan pelbagai jenis data untuk keperluan yang berbeza. Kadang-kadang, kita perlu mencari item data biasa, tidak biasa, atau kedua-duanya yang biasa dan tidak biasa dari pelbagai senarai untuk tujuan pengaturcaraan. Python mengandungi beberapa fungsi dan pengendali terbina dalam yang dapat melakukan jenis tugas ini untuk set Python. Mencari data biasa dari beberapa senarai disebut persimpangan senarai, tetapi tidak ada pengendali atau fungsi bawaan untuk senarai seperti set untuk mencari item data umum dari beberapa senarai. Tutorial ini akan menunjukkan kepada anda cara memotong senarai di Python.

Persimpangan

Sebelum memulakan tutorial ini, konsep persimpangan akan dijelaskan. Di bawah ini, dua diberikan sebagai contoh:







Senarai1= [4, 7, 2. 3, 9, 6, sebelas]
Senaraikan2= [6, 5, 1, dua puluh, 9, 7, 4, 3]

Setelah menerapkan persimpangan, jika hasilnya disimpan dalam senarai lain, mungkin bernama List3, maka akan berisi data berikut.



Senaraikan3= [4, 6, 7, 9]

Gambaran grafik List3 ditunjukkan di bawah:







Contoh 1: Senarai Persilangan melalui Kaedah set ()

Contoh berikut menunjukkan bagaimana anda dapat memotong dua senarai menggunakan tetapkan () kaedah dan & pengendali. Dua senarai, bernama list1 dan list2, dinyatakan di sini. Kedua-dua senarai ini mengandungi nilai berangka. Senarai ketiga dihasilkan dengan menukar senarai1 dan senarai 2 ke dalam set melalui set () kaedah dan mengaplikasikan persilangan dengan menggunakan & pengendali. Seterusnya, nilai tiga senarai dicetak.

#! / usr / bin / env python3
# Tentukan senarai1
senarai1= [22, 8, Empat lima, sebelas, 3. 4, 9, dua puluh, 7]
# Tentukan senarai2
senarai2= [12, 9, dua puluh, 78, 53, 8, 2, 30,31]
# Buat senarai3 dengan memotong senarai1 dan senarai2
senarai3= senarai(set(senarai1)&set(senarai2))
# Cetak senarai1
mencetak(Nilai senarai1: n',senarai1)
# Cetak senarai2
mencetak(Nilai senarai2: n',senarai2)
# Cetak senarai3
mencetak(Nilai-nilai list3 setelah memotong senarai1 dan senarai2: n',senarai3)

Pengeluaran



Output berikut akan muncul setelah menjalankan skrip. Tiga nilai adalah biasa bagi kedua-dua senarai. Nilai-nilai ini adalah 8, 9, dan 20, dan ditunjukkan dalam kandungan senarai ketiga.

Contoh 2: Senarai Persilangan melalui Kaedah persimpangan ()

Tidak ada kaedah langsung, bawaan untuk objek senarai untuk mengetahui nilai persimpangan antara dua senarai. Walau bagaimanapun, set ini mempunyai kaedah terbina dalam, yang dinamakan persimpangan () , untuk mengetahui nilai sepunya antara set. Fungsi tersuai, dinamakan Senarai persimpangan () , didefinisikan dalam skrip berikut untuk mengetahui nilai sepunya antara dua senarai tersebut. Satu batasan dari set ini adalah bahawa ia hanya boleh mengandungi data berangka. Pemboleh ubah senarai boleh mengandungi pelbagai jenis rentetan data, termasuk angka, boolean, dll. Dalam skrip, senarai1 dan senarai2 mengandungi semua data rentetan termasuk dan teks. Skrip akan mencetak semua rentetan umum dan nilai numerik antara senarai1 dan senarai2 .

#! / usr / bin / env python3

# Tentukan fungsi untuk mengembalikan persimpangan dua senarai
defintersectLists(senarai1,senarai2):
kembali set(senarai1).persimpangan(senarai2)

# Tentukan senarai1
senarai1= ['Helo','7','8','10','2']
# Tentukan senarai2
senarai2= ['8','3. 4','Helo','2','dua puluh satu','1',10]
'' Panggil fungsi khusus untuk disimpan
hasil persimpangan senarai1 dan senarai2
ke dalam senarai3 ''

senarai3=intersectLists(senarai1,senarai2)
# Cetak senarai1
mencetak(Nilai senarai1: n',senarai1)
# Cetak senarai2
mencetak(Nilai senarai2: n',senarai2)
# Cetak senarai3
mencetak(Nilai-nilai list3 setelah memotong senarai1 dan senarai2: n',senarai3)

Pengeluaran

Output berikut akan muncul setelah menjalankan skrip. Di sini, nilai umum antara dua senarai adalah '2', '8', dan 'Hello.'

Contoh 3: Menyenaraikan Senarai melalui kaedah gelung

Dua contoh sebelumnya menunjukkan persimpangan senarai menggunakan fungsi terbina dalam. Contoh berikut menunjukkan persimpangan senarai tanpa fungsi terbina dalam. Ini dapat dicapai dengan menggunakan gelung. Dua senarai data teks dinyatakan dalam skrip. The untuk gelung digunakan di sini untuk mengetahui nilai teks biasa antara senarai1 dan senarai2, dan yang disimpan dalam pemboleh ubah, senarai3 . Seterusnya, nilai ketiga pemboleh ubah senarai dicetak.

#! / usr / bin / env python3

# Tentukan senarai1
senarai1= ['Farhan','Abir','Akash','Meena','Mazher']
# Tentukan senarai2
senarai2= ['Meena','Moyna','Nobel','Lebih dekat','Abir','Farheen']
# Cari persimpangan menggunakan gelung dan simpan hasilnya ke dalam senarai3
senarai3= [nilaiuntuknilaidalamsenarai1sekiranyanilaidalamsenarai2]

# Cetak senarai1
mencetak(Nilai senarai1: n',senarai1)
# Cetak senarai2
mencetak(Nilai senarai2: n',senarai2)
# Cetak senarai3
mencetak('Nilai senarai3 setelah memotong senarai1 dan senarai2: n',senarai3)

Pengeluaran

Output berikut akan muncul setelah menjalankan skrip. Di sini, nilai teks biasa dari dua senarai tersebut adalah ‘Abir’ dan 'Meena.'

Contoh 4: Menyenaraikan Senarai Mudah dan Bersarang melalui Kaedah penapis ()

Contoh berikut menunjukkan persimpangan antara senarai mudah dan senarai bersarang. The penapis () kaedah dan lambda fungsi digunakan dalam skrip untuk melakukan persimpangan antara list1 dan list2. Apabila senarai mengandungi satu atau lebih senarai sebagai item senarai, maka senarai itu disebut senarai bersarang. Di sini, senarai1 adalah senarai ringkas, dan senarai2 adalah senarai bersarang, sementara senarai3 mengandungi nilai persilangan dari senarai1 dan senarai2 .

#! / usr / bin / env python3

# Tentukan senarai ringkas
senarai1= [22, 8, Empat lima, sebelas, 3. 4, 9, dua puluh, 7]
# Tentukan senarai bersarang
senarai2= [[12, 9, dua puluh], [78, sebelas, 53, 8], [2, 30, 31, Empat lima]]
# Buat senarai3 dengan memotong senarai1 dan senarai2 menggunakan penapis ()
senarai3= [senarai(tapis(lambdan: ndalamsenarai1,langsing)) untuklangsingdalamsenarai2]

# Cetak senarai1
mencetak(Nilai senarai1: n',senarai1)
# Cetak senarai2
mencetak(Nilai senarai2: n',senarai2)
# Cetak senarai3
mencetak(Nilai-nilai list3 setelah memotong senarai1 dan senarai2: n',senarai3)

Pengeluaran

Output berikut akan muncul setelah menjalankan skrip. Pemboleh ubah list2 mengandungi tiga senarai lain sebagai item senarai. Jadi, hasilnya menunjukkan persimpangan antara ketiga sub-senarai list2 dengan list1.

Kesimpulannya

Persimpangan senarai adalah cara yang berguna untuk mencari nilai umum antara senarai yang mengandungi sebilangan besar item senarai. Kaedah untuk melakukan persilangan senarai dengan dan tanpa fungsi terbina dalam ditunjukkan dalam tutorial ini. Setelah membaca artikel ini, konsep persimpangan senarai harus jelas, dan anda seharusnya dapat menerapkan persimpangan senarai dalam skrip anda dengan mengikuti cara yang ditunjukkan dalam tutorial ini.