Khi cần trích xuất các hàng chứa kiểu dữ liệu phức tạp (list, tuple, dict, set), ta dùng isinstance() và list comprehension.
Ví dụ
my_list = [[13, 1, 35], [23, [44, 54], 85], [66], [75, (81, 2), 29, 7]]
my_result = [row for row in my_list if any(
isinstance(element, (list, tuple, dict, set)) for element in row
)]
print("Danh sách gốc:")
print(my_list)
print("Danh sách kết quả (hàng có kiểu phức tạp):")
print(my_result)
Kết quả đầu ra
Danh sách gốc: [[13, 1, 35], [23, [44, 54], 85], [66], [75, (81, 2), 29, 7]] Danh sách kết quả (hàng có kiểu phức tạp): [[23, [44, 54], 85], [75, (81, 2), 29, 7]]
Giải thích
- Duyệt từng hàng, dùng
any()kiểm tra có phần tử nào là instance của list, tuple, dict, set không. - Hàng 0: toàn int → loại.
- Hàng 1: có [44, 54] (list) → giữ.
- Hàng 2: toàn int → loại.
- Hàng 3: có (81, 2) (tuple) → giữ.
Mở rộng: Thêm isinstance(element, (np.ndarray, pd.Series)) cho NumPy/Pandas.