Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengeluarkan Nombor dengan Cekap daripada Rentetan dalam Python?

Bagaimanakah Saya Boleh Mengeluarkan Nombor dengan Cekap daripada Rentetan dalam Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-21 22:50:11231semak imbas

How Can I Efficiently Extract Numbers from Strings in Python?

Mengekstrak Nombor daripada Rentetan dalam Python

Apabila mengekstrak nombor daripada rentetan dalam Python, dua pendekatan utama boleh digunakan: ungkapan biasa dan isdigit () kaedah. Pilihan bergantung pada keperluan khusus tugas.

Ekspresi Biasa

Ekspresi biasa menawarkan penyelesaian yang serba boleh dan berkuasa untuk mengekstrak nombor. Menggunakan fungsi re.findall(), nombor boleh dikenal pasti dalam rentetan dengan menentukan corak. Sebagai contoh, r'd ' memadankan mana-mana jujukan satu atau lebih digit.

import re

line = "hello 12 hi 89"
numbers = re.findall(r'\d+', line)
print(numbers)  # [12, 89]

Untuk memadankan nombor yang dihadkan oleh sempadan perkataan, seperti ruang atau tanda baca, gunakan b:

numbers_delim = re.findall(r'\b\d+\b', line)
print(numbers_delim)  # [12, 89]

Kaedah isdigit()

Kaedah isdigit() mengembalikan Benar jika semua aksara dalam rentetan adalah digit. Ia boleh digunakan bersama-sama dengan penghirisan rentetan dan pemahaman untuk mengeluarkan nombor daripada rentetan.

line = "hello 12 hi 89"

numbers = []
for chr in line:
    if chr.isdigit():
        numbers.append(chr)

print(numbers)  # ['1', '2', '8', '9']

Untuk menukar digit yang diekstrak kepada integer:

numbers = [int(chr) for chr in numbers]
print(numbers)  # [1, 2, 8, 9]

Kesimpulan

Sementara kedua-dua ungkapan biasa dan kaedah isdigit() boleh digunakan untuk mengekstrak nombor daripada rentetan, ungkapan biasa memberikan lebih fleksibiliti dan kawalan ke atas proses pemadanan. Walau bagaimanapun, untuk tugas pengekstrakan mudah, kaedah isdigit() boleh menjadi lebih mudah.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Nombor dengan Cekap daripada Rentetan dalam Python?. 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