Pengiktirafan corak ialah konsep pengaturcaraan yang penting. Ia membolehkan kami mendapatkan semula data tertentu yang memenuhi syarat tertentu atau sepadan dengan urutan tertentu. Prinsip ini berguna dalam pelbagai bidang seperti Bahasa dan Pemprosesan imej. Padanan rentetan membantu kami mengekstrak maklumat yang bermakna daripada sejumlah besar data.
Dalam artikel ini, kita akan membincangkan konsep serupa untuk mengekstrak rentetan padanan grid daripada senarai rentetan yang diberikan. Fokus padanan grid adalah untuk mengekstrak rentetan "serupa" yang sama panjang Mari kita bincangkan isu ini secara terperinci.
Konsep utama adalah untuk mengekstrak rentetan serupa yang mengikut corak tertentu. Rentetan grid mengandungi aksara yang hilang, dan rentetan yang sepadan dengan corak tersembunyi grid harus diekstrak. Marilah kita memahami perkara ini melalui contoh -
Input: lis1 = ["Suresh", "Ramesh", "Ravi", "Raghav"] mesh = "___e_h"
Grid mengandungi huruf "e" dan "h" serta beberapa aksara hilang yang membentuk corak. Kita perlu mengekstrak rentetan yang sepadan dengan corak grid daripada senarai.
Output: ['Suresh', 'Ramesh']
Nampaknya, perkataan "Suresh" dan "Ramesh" sepadan dengan corak grid. Sekarang setelah kita memahami pernyataan masalah, mari kita bincangkan beberapa penyelesaian.
Selepas melepasi senarai rentetan dan corak grid, kami akan membuat senarai kosong untuk menyimpan rentetan yang diekstrak. Kami akan menggunakan gelung "untuk" untuk mengulangi setiap rentetan dan membina keadaan di dalam gelung untuk menyemak sama ada panjang "String" (perkataan) semasa adalah sama dengan panjang rentetan itu. jaring.
Ini membolehkan kami memilih rentetan yang berkaitan untuk pemadanan grid. Syarat ini juga menyemak sama ada aksara dalam grid ialah "garis bawah" atau sepadan dengan aksara yang sepadan dalam perkataan.
Menggunakan dua syarat ini, kami akan mengeluarkan perkataan yang sepadan dengan corak grid. Jika kedua-dua rentetan dan aksaranya memenuhi syarat tersebut, fungsi zip() akan digunakan untuk mengulang dan menggandingkan aksara dalam "mesh" dengan aksara dalam "". Fungsi ini membenarkan kedua-dua corak Membuat perbandingan berpasangan
Contoh
lis1 = ["Suresh", "Ramesh", "Ravi", "Raghav"] mesh = "___e_h" lis2 = [] print(f"The original list is: {lis1}") for words in lis1: if (len(words) == len(mesh)) and all((letter1 == "_") or (letter1 == letter2) for letter1, letter2 in zip(mesh, words)): lis2.append(words) print(f"The new list is: {lis2}")
The original list is: ['Suresh', 'Ramesh', 'Ravi', 'Raghav'] The new list is: ['Suresh', 'Ramesh']
Perwakilan padat ini meningkatkan kebolehbacaan program. Kami akan menggunakan logik yang sama untuk mewujudkan syarat dan nilai berasingan yang memenuhi kriteria. Kedua-dua gelung "untuk" dan "jika" akan digunakan pada senarai. Bandingkan dan padankan setiap watak dengan bantuan fungsi
zip() .
Contoh
lis1 = ["Suresh", "Ramesh", "Ravi", "Raghav"] mesh = "___e_h" print(f"The original list is:{lis1}") lis2 = [words for words in lis1 if (len(words) == len(mesh)) and all((letter1 == "_") or (letter1 == letter2) for letter1, letter2 in zip(mesh, words))] print(f"The new list is: {lis2}")
The original list is:['Suresh', 'Ramesh', 'Ravi', 'Raghav'] The new list is: ['Suresh', 'Ramesh']
filter() dan lambda . Fungsi penapis akan menapis rentetan yang tidak sepadan dan mentakrifkan fungsi lambda di dalamnya yang menyemak panjang kedua-dua corak. Fungsi
zip() akan digunakan untuk membandingkan dan memadankan aksara. Kriteria penapis akan disediakan oleh fungsi lambda.
Contoh
lis1 = ["Suresh", "Ramesh", "Ravi", "Raghav"] mesh = "___e_h" print(f"The original list is:{lis1}") lis2 = list(filter(lambda words: len(words) == len(mesh) and all((letter1 == "_") or (letter1 == letter2) for letter1, letter2 in zip(mesh, words)), lis1)) print(f"The new list is: {lis2}")
The original list is:['Suresh', 'Ramesh', 'Ravi', 'Raghav'] The new list is: ['Suresh', 'Ramesh']
Kesimpulan
grid. Pada mulanya kami memberi tumpuan kepada memahami konsep padanan grid dan kemudian kami memperkenalkan penyelesaian. Kami menggunakan banyak konsep pengaturcaraan termasuk "Lelaran", "Pemahaman senarai", "filter()" dan "lambda function" b>" untuk mencapai matlamat kami.
Atas ialah kandungan terperinci Program Python untuk mengekstrak rentetan padanan grid. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!