Trong hướng dẫn này, chúng ta dùng hàm map() để tìm hàng (row) chứa nhiều số 1 nhất trong ma trận.
Ví dụ
matrix = [
[0, 0, 1],
[1, 1, 1],
[1, 1, 0]
]
# Hàng index 1 có 3 số 1 (nhiều nhất)
Code
matrix = [
[0, 0, 1],
[1, 1, 1],
[1, 1, 0]
]
def count_ones(row):
"""Đếm số 1 trong một hàng"""
count = 0
for val in row:
if val == 1:
count += 1
return count
# map() áp dụng count_ones cho từng hàng
ones_count = list(map(count_ones, matrix))
print("Số 1 mỗi hàng:", ones_count) # [1, 3, 2]
# Tìm index của max
max_index = ones_count.index(max(ones_count))
print(f"Hàng có nhiều 1 nhất: index {max_index}")
Kết quả
Số 1 mỗi hàng: [1, 3, 2] Hàng có nhiều 1 nhất: index 1
Giải thích
map(func, iterable)áp dụng func cho từng phần tử, trả về iterator- Chuyển thành list để dùng
index()vàmax() - Có thể dùng lambda:
map(lambda row: row.count(1), matrix)
Mở rộng: Dùng NumPy (hiệu quả hơn cho ma trận lớn)
import numpy as np matrix = np.array([[0,0,1], [1,1,1], [1,1,0]]) row_sums = matrix.sum(axis=1) print(np.argmax(row_sums)) # 1