Trích xuất các số nguyên từ chuỗi (các từ chỉ chứa chữ số). Sử dụng list comprehension và phương thức isdigit().
Mã nguồn
my_string = "python is 12 fun 2 learn"
print("Chuỗi:", my_string)
# Tách từ, lọc từ isdigit(), chuyển thành int
my_result = [int(i) for i in my_string.split() if i.isdigit()]
print("Danh sách số:", my_result)
Kết quả
Chuỗi: python is 12 fun 2 learn Danh sách số: [12, 2]
Giải thích
my_string.split()tách chuỗi thành list từ: ['python', 'is', '12', 'fun', '2', 'learn'].i.isdigit()trả về True nếu chuỗiichỉ chứa chữ số 0-9.int(i)chuyển chuỗi số thành integer.- Chỉ lấy các từ là số nguyên dương (không dấu, không thập phân).
Mở rộng: Trích xuất số trong chuỗi không tách từ
import re
my_string = "python12fun2learn"
numbers = [int(x) for x in re.findall(r'\d+', my_string)]
print(numbers) # [12, 2]
re.findall(r'\d+', ...) tìm tất cả dãy số liên tiếp, phù hợp cho chuỗi không có dấu cách.