Rumah pembangunan bahagian belakang Tutorial Python Cara menggunakan ungkapan biasa Python untuk struktur data dan algoritma

Cara menggunakan ungkapan biasa Python untuk struktur data dan algoritma

Jun 22, 2023 pm 08:01 PM
struktur data algoritma ungkapan biasa python

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:

  1. 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.
  2. 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).
  3. Pencari: digunakan untuk memadankan kedudukan teks. Sebagai contoh, ^ sepadan dengan permulaan teks dan $ sepadan dengan akhir teks.
  4. 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:

  1. aksara Padanan rentetan : Cari subrentetan yang sepadan dengan corak dalam rentetan.
  2. Penggantian rentetan: Gantikan subrentetan yang sepadan dengan corak tertentu dalam rentetan dengan rentetan lain.
  3. 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
Salin selepas log masuk

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

Seterusnya, gunakan kaedah re.findall untuk mencari corak padanan subrentetan dalam rentetan s Kodnya adalah seperti berikut:

result = re.findall(pattern, s)
Salin selepas log masuk

Kaedah re.findall. di sini mengembalikan Senarai padanan yang mengandungi semua subrentetan yang sepadan. Akhirnya, kita boleh mengeluarkan hasil yang ditemui:

print(result)
Salin selepas log masuk

Kod lengkap adalah seperti berikut:

import re

s = "123abc456def789"

pattern = r'^d+'
result = re.findall(pattern, s)

print(result)
Salin selepas log masuk

Hasil output ialah:

['123', '456', '789']
Salin selepas log masuk

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

Hasil output ialah:

Hello_world,_welcome_to_Python!
Salin selepas log masuk

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

Hasil output ialah:

['Hello', ' My name is John', ' What is your name?']
Salin selepas log masuk

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!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

CLIP-BEVFormer: Selia secara eksplisit struktur BEVFormer untuk meningkatkan prestasi pengesanan ekor panjang CLIP-BEVFormer: Selia secara eksplisit struktur BEVFormer untuk meningkatkan prestasi pengesanan ekor panjang Mar 26, 2024 pm 12:41 PM

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.

Melaksanakan Algoritma Pembelajaran Mesin dalam C++: Cabaran dan Penyelesaian Biasa Melaksanakan Algoritma Pembelajaran Mesin dalam C++: Cabaran dan Penyelesaian Biasa Jun 03, 2024 pm 01:25 PM

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.

Terokai prinsip asas dan pemilihan algoritma bagi fungsi isihan C++ Terokai prinsip asas dan pemilihan algoritma bagi fungsi isihan C++ Apr 02, 2024 pm 05:36 PM

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.

Bandingkan struktur data kompleks menggunakan perbandingan fungsi Java Bandingkan struktur data kompleks menggunakan perbandingan fungsi Java Apr 19, 2024 pm 10:24 PM

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.

Algoritma pengesanan yang dipertingkatkan: untuk pengesanan sasaran dalam imej penderiaan jauh optik resolusi tinggi Algoritma pengesanan yang dipertingkatkan: untuk pengesanan sasaran dalam imej penderiaan jauh optik resolusi tinggi Jun 06, 2024 pm 12:33 PM

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 dan algoritma data Java: penjelasan mendalam Struktur dan algoritma data Java: penjelasan mendalam May 08, 2024 pm 10:12 PM

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.

Aplikasi algoritma dalam pembinaan 58 platform potret Aplikasi algoritma dalam pembinaan 58 platform potret May 09, 2024 am 09:01 AM

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

Struktur data PHP: Keseimbangan pepohon AVL, mengekalkan struktur data yang cekap dan teratur Struktur data PHP: Keseimbangan pepohon AVL, mengekalkan struktur data yang cekap dan teratur Jun 03, 2024 am 09:58 AM

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.

See all articles