


Cara menggunakan ungkapan biasa Python untuk struktur data dan algoritma
Ekspresi biasa Python ialah alat pemprosesan rentetan berdasarkan padanan corak, yang boleh membantu kami mengekstrak maklumat yang diperlukan daripada teks dengan cepat dan cekap. Dalam struktur data dan algoritma, ungkapan biasa boleh digunakan untuk melaksanakan pemadanan teks, penggantian, pembahagian dan fungsi lain, memberikan sokongan yang lebih berkuasa untuk pengaturcaraan kami.
Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa Python untuk struktur data dan algoritma.
1. Pengetahuan asas ungkapan biasa
Sebelum bermula, mari belajar beberapa pengetahuan asas ungkapan biasa:
- Set aksara: gunakan kurungan segi empat sama Menunjukkan bahawa ia sepadan sebarang watak yang terdapat dalam kurungan segi empat sama. Contohnya, [abc] boleh memadankan mana-mana satu daripada tiga aksara a, b dan c.
- Metacharacter: digunakan untuk memadankan watak atau set aksara tertentu. Contohnya, . boleh memadankan mana-mana aksara kecuali baris baharu, dan * boleh memadankan sebarang bilangan aksara (termasuk 0).
- Pencari: digunakan untuk memadankan kedudukan teks. Sebagai contoh, ^ sepadan dengan permulaan teks dan $ sepadan dengan akhir teks.
- Simbol bilangan ulangan: digunakan untuk menentukan bilangan kali elemen sebelumnya perlu dipadankan. Contohnya, + bermaksud memadankan 1 atau lebih elemen sebelumnya, {n, m} bermaksud memadankan n kepada m elemen sebelumnya.
2. Aplikasi ungkapan biasa dalam struktur data
Dalam struktur data, ungkapan biasa boleh digunakan dalam senario berikut:
- aksara Padanan rentetan : Cari subrentetan yang sepadan dengan corak dalam rentetan.
- Penggantian rentetan: Gantikan subrentetan yang sepadan dengan corak tertentu dalam rentetan dengan rentetan lain.
- Pecah rentetan: Pisahkan rentetan mengikut corak tertentu.
3. Contoh: Gunakan ungkapan biasa untuk mencari corak dalam rentetan
Mari lihat contoh khusus di bawah untuk mencari corak yang sepadan dengan subrentetan rentetan.
Andaikan kita mempunyai rentetan s, dan kita perlu mencari semua subrentetan bermula dengan nombor.
Pertama, import modul semula:
import re
Kemudian, kami mentakrifkan corak yang ingin kami cari, berikut adalah rentetan yang bermula dengan nombor, yang boleh diwakili oleh "^d+", di mana ^ mewakili aksara yang sepadan Pada permulaan rentetan, d+ bermaksud memadankan satu atau lebih nombor. Kodnya adalah seperti berikut:
pattern = r'^d+'
Seterusnya, gunakan kaedah re.findall untuk mencari corak padanan subrentetan dalam rentetan s Kodnya adalah seperti berikut:
result = re.findall(pattern, s)
Kaedah re.findall. di sini mengembalikan Senarai padanan yang mengandungi semua subrentetan yang sepadan. Akhirnya, kita boleh mengeluarkan hasil yang ditemui:
print(result)
Kod lengkap adalah seperti berikut:
import re s = "123abc456def789" pattern = r'^d+' result = re.findall(pattern, s) print(result)
Hasil output ialah:
['123', '456', '789']
4. Contoh: Gunakan ungkapan biasa untuk lakukan pemprosesan rentetan Ganti
Selain mencari subrentetan yang sepadan dengan corak dalam rentetan, ungkapan biasa juga boleh digunakan untuk menggantikan rentetan.
Andaikan kita mempunyai rentetan s, dan kita perlu menggantikan semua ruang di dalamnya dengan garis bawah.
Begitu juga, kita tentukan dahulu corak yang ingin kita cari, iaitu ruang dalam kes ini, diwakili oleh "s+".
Kemudian gunakan kaedah re.sub untuk menggantikan rentetan Kodnya adalah seperti berikut:
import re s = "Hello world, welcome to Python!" pattern = r's+' replace_with = '_' result = re.sub(pattern, replace_with, s) print(result)
Hasil output ialah:
Hello_world,_welcome_to_Python!
5. Contoh: Gunakan ungkapan biasa. untuk menggantikan rentetan Pemisahan
Selain padanan dan penggantian rentetan, ungkapan biasa juga boleh digunakan untuk membelah rentetan.
Andaikan kita mempunyai rentetan s, yang mengandungi berbilang ayat, dan kita perlu membahagikannya mengikut noktah.
Begitu juga, kita mula-mula mentakrifkan corak yang ingin kita cari, yang merupakan titik dalam kes ini, diwakili oleh ".".
Kemudian gunakan kaedah re.split untuk membelah rentetan Kodnya adalah seperti berikut:
import re s = "Hello. My name is John. What is your name?" pattern = r'.' result = re.split(pattern, s) print(result)
Hasil output ialah:
['Hello', ' My name is John', ' What is your name?']
6. Ringkasan
Ekspresi biasa Python ialah alat pemprosesan rentetan yang sangat berkuasa dan digunakan secara meluas dalam struktur data dan algoritma. Menguasai pengetahuan asas ungkapan biasa Python dan mahir menggunakan pelbagai kaedah boleh menjadikan pengaturcaraan kami lebih cekap dan fleksibel.
Atas ialah kandungan terperinci Cara menggunakan ungkapan biasa Python untuk struktur data dan algoritma. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Ditulis di atas & pemahaman peribadi penulis: Pada masa ini, dalam keseluruhan sistem pemanduan autonomi, modul persepsi memainkan peranan penting Hanya selepas kenderaan pemanduan autonomi yang memandu di jalan raya memperoleh keputusan persepsi yang tepat melalui modul persepsi boleh Peraturan hiliran dan. modul kawalan dalam sistem pemanduan autonomi membuat pertimbangan dan keputusan tingkah laku yang tepat pada masanya dan betul. Pada masa ini, kereta dengan fungsi pemanduan autonomi biasanya dilengkapi dengan pelbagai penderia maklumat data termasuk penderia kamera pandangan sekeliling, penderia lidar dan penderia radar gelombang milimeter untuk mengumpul maklumat dalam modaliti yang berbeza untuk mencapai tugas persepsi yang tepat. Algoritma persepsi BEV berdasarkan penglihatan tulen digemari oleh industri kerana kos perkakasannya yang rendah dan penggunaan mudah, dan hasil keluarannya boleh digunakan dengan mudah untuk pelbagai tugas hiliran.

Cabaran biasa yang dihadapi oleh algoritma pembelajaran mesin dalam C++ termasuk pengurusan memori, multi-threading, pengoptimuman prestasi dan kebolehselenggaraan. Penyelesaian termasuk menggunakan penunjuk pintar, perpustakaan benang moden, arahan SIMD dan perpustakaan pihak ketiga, serta mengikuti garis panduan gaya pengekodan dan menggunakan alat automasi. Kes praktikal menunjukkan cara menggunakan perpustakaan Eigen untuk melaksanakan algoritma regresi linear, mengurus memori dengan berkesan dan menggunakan operasi matriks berprestasi tinggi.

Lapisan bawah fungsi C++ sort menggunakan isihan gabungan, kerumitannya ialah O(nlogn), dan menyediakan pilihan algoritma pengisihan yang berbeza, termasuk isihan pantas, isihan timbunan dan isihan stabil.

Apabila menggunakan struktur data kompleks dalam Java, Comparator digunakan untuk menyediakan mekanisme perbandingan yang fleksibel. Langkah-langkah khusus termasuk: mentakrifkan kelas pembanding, menulis semula kaedah bandingkan untuk menentukan logik perbandingan. Buat contoh pembanding. Gunakan kaedah Collections.sort, menghantar contoh koleksi dan pembanding.

01Garis prospek Pada masa ini, sukar untuk mencapai keseimbangan yang sesuai antara kecekapan pengesanan dan hasil pengesanan. Kami telah membangunkan algoritma YOLOv5 yang dipertingkatkan untuk pengesanan sasaran dalam imej penderiaan jauh optik resolusi tinggi, menggunakan piramid ciri berbilang lapisan, strategi kepala pengesanan berbilang dan modul perhatian hibrid untuk meningkatkan kesan rangkaian pengesanan sasaran dalam imej penderiaan jauh optik. Menurut set data SIMD, peta algoritma baharu adalah 2.2% lebih baik daripada YOLOv5 dan 8.48% lebih baik daripada YOLOX, mencapai keseimbangan yang lebih baik antara hasil pengesanan dan kelajuan. 02 Latar Belakang & Motivasi Dengan perkembangan pesat teknologi penderiaan jauh, imej penderiaan jauh optik resolusi tinggi telah digunakan untuk menggambarkan banyak objek di permukaan bumi, termasuk pesawat, kereta, bangunan, dll. Pengesanan objek dalam tafsiran imej penderiaan jauh

Struktur data dan algoritma ialah asas pembangunan Java Artikel ini meneroka secara mendalam struktur data utama (seperti tatasusunan, senarai terpaut, pepohon, dll.) dan algoritma (seperti pengisihan, carian, algoritma graf, dll.) dalam Java. Struktur ini diilustrasikan dengan contoh praktikal, termasuk menggunakan tatasusunan untuk menyimpan skor, senarai terpaut untuk mengurus senarai beli-belah, tindanan untuk melaksanakan rekursi, baris gilir untuk menyegerakkan benang, dan pepohon dan jadual cincang untuk carian dan pengesahan pantas. Memahami konsep ini membolehkan anda menulis kod Java yang cekap dan boleh diselenggara.

1. Latar Belakang Pembinaan 58 Portrait Platform Pertama sekali, saya ingin berkongsi dengan anda latar belakang pembinaan 58 Portrait Platform. 1. Pemikiran tradisional platform pemprofilan tradisional tidak lagi mencukupi Membina platform pemprofilan pengguna bergantung pada keupayaan pemodelan gudang data untuk menyepadukan data daripada pelbagai barisan perniagaan untuk membina potret pengguna yang tepat untuk memahami tingkah laku, minat pengguna dan keperluan, dan menyediakan keupayaan sampingan, akhirnya, ia juga perlu mempunyai keupayaan platform data untuk menyimpan, bertanya dan berkongsi data profil pengguna dan menyediakan perkhidmatan profil dengan cekap. Perbezaan utama antara platform pemprofilan perniagaan binaan sendiri dan platform pemprofilan pejabat pertengahan ialah platform pemprofilan binaan sendiri menyediakan satu barisan perniagaan dan boleh disesuaikan atas permintaan platform pertengahan pejabat berkhidmat berbilang barisan perniagaan, mempunyai kompleks pemodelan, dan menyediakan lebih banyak keupayaan umum. 2.58 Potret pengguna latar belakang pembinaan potret di platform tengah 58

Pokok AVL ialah pokok carian binari seimbang yang memastikan operasi data yang pantas dan cekap. Untuk mencapai keseimbangan, ia melakukan operasi belok kiri dan kanan, melaraskan subpokok yang melanggar keseimbangan. Pokok AVL menggunakan pengimbangan ketinggian untuk memastikan ketinggian pokok sentiasa kecil berbanding bilangan nod, dengan itu mencapai kerumitan masa logaritma (O(logn)) operasi carian dan mengekalkan kecekapan struktur data walaupun pada set data yang besar.
