Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Trích xuất số từ danh sách chuỗi trong Python


Khi dùng Python thao tác dữ liệu, ta có thể gặp danh sách mà các phần tử là mezcla chữ cái và số theo mẫu cố định. Bài viết này trình bày cách tách số từ chữ cái để dùng cho tính toán sau này.

Sử dụng split

Hàm split tách chuỗi nhờ một ký tự được xem như bộ phân tách. Trong chương trình dưới đây, các phần tử danh sách có dấu gạch ngang làm bộ phân tách giữa chữ và số. Ta sẽ dùng nó cùng vòng lặp for để bắt từng phần.

Ví dụ

listA = ['Mon-2', 'Wed-8', 'Thu-2', 'Fri-7'] # Danh sách cho trước print("Danh sách cho trước : " + str(listA)) # Trích xuất số num_list = [int(i.split('-')[1]) for i in listA] # in kết quả print("Danh sách chỉ với số : ",num_list)

Kết quả

Chạy mã trên cho kết quả sau −

Danh sách cho trước : ['Mon-2', 'Wed-8', 'Thu-2', 'Fri-7'] Danh sách chỉ với số : [2, 8, 2, 7]

Sử dụng map và isnumeric

Trong cách này, ta đi qua từng phần tử và kiểm tra phần số hiện diện trong mỗi phần tử. Hàm map được dùng để áp dụng cùng hàm lặp lại trên mỗi phần tử.

Ví dụ

listA = ['Mon-2', 'Wed-8', 'Thu-2', 'Fri-7'] # Danh sách cho trước print("Danh sách cho trước : " + str(listA)) # Trích xuất số num_list = list(map(lambda sub:int(''.join( [i for i in sub if i.isnumeric()])), listA)) # in kết quả print("Danh sách chỉ với số : ",num_list)

Kết quả

Chạy mã trên cho kết quả sau −

Danh sách cho trước : ['Mon-2', 'Wed-8', 'Thu-2', 'Fri-7'] Danh sách chỉ với số : [2, 8, 2, 7]