Nhân hai danh sách trong python có thể là một điều cần thiết trong nhiều phép tính phân tích dữ liệu. Trong bài này, chúng ta sẽ xem cách nhân các phần tử của một danh sách hay còn gọi là danh sách lồng nhau với một danh sách khác.
Sử dụng vòng lặp
Trong cách tiếp cận này, chúng tôi thiết kế kéo cho các vòng lặp, vòng lặp này bên trong vòng lặp khác. Vòng lặp bên ngoài theo dõi số lượng phần tử trong danh sách và vòng lặp bên trong theo dõi từng phần tử bên trong danh sách lồng nhau. Chúng tôi sử dụng toán tử * để nhân các phần tử của danh sách thứ hai với các phần tử tương ứng của danh sách lồng nhau.
Ví dụ
listA = [[2, 11, 5], [3, 2, 8], [11, 9, 8]] multipliers = [5, 11, 0] # Original list print("The given list: " ,listA) # Multiplier list print(" Multiplier list : " ,multipliers ) # using loops res = [[] for idx in range(len(listA))] for i in range(len(listA)): for j in range(len(multipliers)): res[i] += [multipliers[i] * listA[i][j]] #Result print("Result of multiplication : ",res)
Đầu ra
Chạy đoạn mã trên cho chúng ta kết quả sau -
The given list: [[2, 11, 5], [3, 2, 8], [11, 9, 8]] Multiplier list : [5, 11, 0] Result of multiplication : [[10, 55, 25], [33, 22, 88], [0, 0, 0]]
Với liệt kê
Phương thức liệt kê có thể được sử dụng để tìm nạp từng phần tử của danh sách lồng nhau và sau đó các vòng lặp for có thể được sử dụng để thực hiện phép nhân.
Ví dụ
listA = [[2, 11, 5], [3, 2, 8], [11, 9, 8]] multipliers = [5, 11, 0] # Original list print("The given list: " + str(listA)) # Multiplier list print(" Multiplier list : " ,multipliers ) # Using enumerate res = [[multipliers[i] * j for j in x] for i, x in enumerate(listA)] #Result print("Result of multiplication : ",res)
Đầu ra
Chạy đoạn mã trên cho chúng ta kết quả sau -
The given list: [[2, 11, 5], [3, 2, 8], [11, 9, 8]] Multiplier list : [5, 11, 0] Result of multiplication : [[10, 55, 25], [33, 22, 88], [0, 0, 0]]