Khi cần lọc các hàng không chứa chuỗi có khoảng trắng, ta dùng list comprehension, biểu thức chính quy (regex), toán tử not và phương thức any().
Ví dụ
import re
my_list = [["python is", "fun"], ["python", "good"], ["python is cool"], ["love", "python"]]
print("Danh sách là:")
print(my_list)
my_result = [row for row in my_list if not any(bool(re.search(r"\s", element)) for element in row)]
print("Danh sách kết quả:")
print(my_result)
Kết quả đầu ra
Danh sách là: [['python is', 'fun'], ['python', 'good'], ['python is cool'], ['love', 'python']] Danh sách kết quả: [['python', 'good'], ['love', 'python']]
Giải thích
- Import module
recho regex. - Duyệt từng hàng, dùng
any()kiểm tra có phần tử nào khớp regex\s(khoảng trắng) không. not any(...)chỉ giữ hàng không có phần tử chứa khoảng trắng.- Kết quả chỉ còn hàng ['python', 'good'] và ['love', 'python'].
Cách thay thế không dùng regex:
my_result = [row for row in my_list if not any(' ' in elem for elem in row)]