Lọc bỏ các hàng (sublist) trong ma trận nếu hàng đó chứa bất kỳ số nguyên (int) nào. Sử dụng list comprehension, any() và isinstance().
Mã nguồn
my_list = [[14, 'Pyt', 'fun'], ['Pyt', 'is', 'best'], [23, 51], ['Pyt', 'fun']]
print("Ma trận gốc:", my_list)
# Giữ hàng KHÔNG chứa bất kỳ int nào
my_result = [index for index in my_list if not any(isinstance(element, int) for element in index)]
print("Ma trận sau lọc:", my_result)
Kết quả
Ma trận gốc: [[14, 'Pyt', 'fun'], ['Pyt', 'is', 'best'], [23, 51], ['Pyt', 'fun']] Ma trận sau lọc: [['Pyt', 'is', 'best'], ['Pyt', 'fun']]
Giải thích
isinstance(element, int)kiểm tra kiểu int.any(... for element in index)True nếu có ít nhất 1 int trong hàng.not any(...)đảo ngược: giữ hàng không có int nào.- Hàng 1: có 14 (int) → loại. Hàng 3: 23, 51 (int) → loại.
Mở rộng: Kiểm tra nhiều kiểu số
import numbers
# Kiểm tra mọi kiểu số (int, float, complex, bool...)
my_result = [row for row in my_list if not any(isinstance(e, numbers.Number) for e in row)]
Lưu ý: bool là subclass của int trong Python, isinstance(True, int) = True.