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

Python – Lọc hàng (row) mà mọi phần tử đều là bội số của K

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 index trong my_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)