Lọc các hàng (sublist) trong ma trận mà tất cả phần tử đều chia hết cho K. Sử dụng list comprehension, all() và toán tử modulus %.
Mã nguồn
my_list = [[15, 10, 25], [14, 28, 23], [120, 55], [55, 30, 203]]
print("Ma trận:", my_list)
K = 5
print("K =", K)
my_result = [index for index in my_list if all(element % K == 0 for element in index)]
print("Các hàng toàn bội số của", K, ":", my_result)
Kết quả
Ma trận: [[15, 10, 25], [14, 28, 23], [120, 55], [55, 30, 203]] K = 5 Các hàng toàn bội số của 5: [[15, 10, 25], [120, 55]]
Giải thích
- Duyệt từng hàng
indextrongmy_list. all(element % K == 0 for element in index): True nếu mọi phần tử chia hết cho 5.- Hàng 1: 15,10,25 ✓; Hàng 2: 14,28,23 ✗; Hàng 3: 120,55 ✓; Hàng 4: 55,30,203 ✗ (203%5=3).
Mở rộng: Lọc hàng có ít nhất một bội số
# any() thay vì all()
my_result_any = [row for row in my_list if any(e % K == 0 for e in row)]
# [[15, 10, 25], [14, 28, 23], [120, 55], [55, 30, 203]] (tất cả hàng đều có ít nhất 1 bội số 5)