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

Python – Loại bỏ hàng chứa số nguyên khỏi ma trận

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.