Computer >> Máy Tính >  >> Lập trình >> Python

Ma trận độ dài tùy chỉnh trong Python

Đôi khi khi tạo ma trận bằng python, chúng ta có thể cần kiểm soát số lần một phần tử đã cho được lặp lại trong ma trận kết quả. Trong phần này, chúng ta sẽ thấy cách tạo ma trận với số lượng phần tử cần thiết khi các phần tử được đưa ra dưới dạng danh sách.

Sử dụng zip

Chúng tôi khai báo một danh sách với các phần tử sẽ được sử dụng trong ma trận. Sau đó, chúng tôi khai báo một danh sách khác sẽ chứa số lần xuất hiện của phần tử trong ma trận. Sử dụng hàm zip, chúng ta có thể tạo ma trận kết quả sẽ liên quan đến vòng lặp for để sắp xếp các phần tử.

Ví dụ

listA = ['m', 'n', 'p','q']

# Count of elements
elem_count = [1,0,3,2]

# Given Lists
print("Given List of elements: " ,listA)
print("Count of elements : ",elem_count)

# Creating Matrix
res = [[x] * y for x, y in zip(listA, elem_count)]

# Result
print("The new matrix is : " ,res)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Given List of elements: ['m', 'n', 'p', 'q']
Count of elements : [1, 0, 3, 2]
The new matrix is : [['m'], [], ['p', 'p', 'p'], ['q', 'q']]

với bản đồ và mul

Trong cách tiếp cận này, chúng tôi sử dụng phương pháp mul từ mô-đun toán tử thay cho phương thức zip ở trên. Ngoài ra, hàm bản đồ áp dụng phương thức mul cho mọi phần tử trong danh sách do đó không cần vòng lặp for.

Ví dụ

from operator import mul

listA = ['m', 'n', 'p','q']

# Count of elements
elem_count = [1,0,3,2]

# Given Lists
print("Given List of elements: " ,listA)
print("Count of elements : ",elem_count)

# Creating Matrix
res = list(map(mul, listA, elem_count))

# Result
print("The new matrix is : " ,res)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Given List of elements: ['m', 'n', 'p', 'q']
Count of elements : [1, 0, 3, 2]
The new matrix is : ['m', '', 'ppp', 'qq']