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

Python – Sắp Xếp Danh Sách Chuỗi Theo Phần Số Trong Chuỗi


Khi cần sắp xếp danh sách chuỗi theo phần số (numeric part) trong chuỗi, dùng biểu thức chính quy (regular expression) và phương thức findall.

Ví dụ

Minh họa dưới đây:

import re
def my_num_sort(my_str):
    return list(map(int, re.findall(r'\d+', my_str)))[0]
my_list = ["pyth42on", '14is', '32fun', '89to', 'lea78rn']
print("Danh sách là:")
print(my_list)
my_list.sort(key=my_num_sort)
print("Kết quả là:")
print(my_list)

Kết quả

Danh sách là: ['pyth42on', '14is', '32fun', '89to', 'lea78rn']
Kết quả là: ['14is', '32fun', 'pyth42on', 'lea78rn', '89to']

Giải thích

  • Import gói cần thiết vào môi trường.
  • Định nghĩa phương thức nhận chuỗi làm tham số.
  • Dùng findall tìm khớp pattern cụ thể.
  • Chuyển thành chuỗi dùng map, rồi thành list.
  • Trả về đầu ra của phương thức.
  • Bên ngoài phương thức, định nghĩa danh sách chuỗi và hiển thị ra console.
  • Sắp xếp danh sách với key là phương thức đã định nghĩa.
  • List này hiển thị là đầu ra trên console.