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

Tạo ma trận độ dài tùy chỉnh trong Python

Khi tạo ma trận trong Python, đôi khi cần kiểm soát số lần lặp lại của từng phần tử trong ma trận kết quả. Bài viết này hướng dẫn tạo ma trận với số lượng phần tử yêu cầu khi các phần tử được cho dưới dạng danh sách.

Sử dụng zip

Khai báo danh sách chứa các phần tử cho ma trận. Khai báo thêm danh sách thứ hai lưu số lần xuất hiện của từng phần tử. Dùng hàm zip() kết hợp với vòng lặp for để tổ chức các phần tử thành ma trận.

Ví dụ

listA = ['m', 'n', 'p', 'q']
# Số lượng phần tử
elem_count = [1, 0, 3, 2]
# Danh sách đã cho
print("Danh sách phần tử:", listA)
print("Số lượng:", elem_count)
# Tạo ma trận
res = [[x] * y for x, y in zip(listA, elem_count)]
# Kết quả
print("Ma trận mới:", res)

Kết quả

Danh sách phần tử: ['m', 'n', 'p', 'q']
Số lượng: [1, 0, 3, 2]
Ma trận mới: [['m'], [], ['p', 'p', 'p'], ['q', 'q']]

Sử dụng map và mul

Cách này dùng phương thức mul từ module operator thay cho zip. Hàm map() áp dụng mul cho từng phần tử nên không cần vòng lặp for tường minh.

Ví dụ

from operator import mul
listA = ['m', 'n', 'p', 'q']
# Số lượng phần tử
elem_count = [1, 0, 3, 2]
# Danh sách đã cho
print("Danh sách phần tử:", listA)
print("Số lượng:", elem_count)
# Tạo ma trận
res = list(map(mul, listA, elem_count))
# Kết quả
print("Ma trận mới:", res)

Kết quả

Danh sách phần tử: ['m', 'n', 'p', 'q']
Số lượng: [1, 0, 3, 2]
Ma trận mới: ['m', '', 'ppp', 'qq']