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!