Trong bài đăng này, chúng ta sẽ xem cách nhân hai danh sách trong Python. Chúng tôi muốn tìm sản phẩm của các phần tử danh sách tại các vị trí tương ứng Nói một cách đơn giản, chúng ta phải thực hiện phép nhân từng phần tử. Vậy hãy bắt đầu Show
Nhân hai Danh sách trong Python bằng cách Sử dụng Vòng lặpMột cách tiếp cận đơn giản là lặp lại cả hai danh sách, tính tích của các giá trị tại cùng một chỉ mục và nối nó vào một danh sách mới. Hãy xem một ví dụ
list_one = [3, 4, 5 ,6, 8, 9] list_two = [4, 5, 1, 0, 6] product = [] for el1, el2 in zip(list_one, list_two): product.append(el1*el2) print("The product of two lists is: ", product)
đầu ra
The product of two lists is: [12, 20, 5, 0, 48]
Trong ví dụ trên, chúng tôi lặp qua các danh sách bằng phương thức zip(). Nó nhận các iterables (danh sách) và trả về một iterator gồm các bộ dữ liệu Ngoài ra, đảm bảo chạy vòng lặp n lần, trong đó n là độ dài của danh sách nhỏ hơn Phương thức zip() giải quyết vấn đề đó vì bạn có thể nhận thấy rằng list_one có sáu mục và list_two có năm, nhưng danh sách sản phẩm chỉ có năm giá trị
Nhân hai Danh sách trong Python bằng cách Sử dụng Tính năng Hiểu Danh sáchChúng ta cũng có thể sử dụng khả năng hiểu danh sách để thực hiện phép nhân thành phần tử. Phương pháp này nên được ưu tiên hơn phương pháp trước vì nó dễ dàng và ngắn gọn hơn. Hãy xem nào
list_one = [3, 4, 5 ,6, 8, 9] list_two = [4, 5, 1, 0, 6] product = [el1*el2 for el1, el2 in zip(list_one, list_two)] #element-wise multiplication print("The product of two lists is: ", product)
đầu ra
The product of two lists is: [12, 20, 5, 0, 48]
Hãy xem, đây là một cách tiếp cận ngắn và đơn giản
Nhân hai Danh sách trong Python bằng cách Sử dụng NumPyMột phương pháp khác là sử dụng thư viện NumPy. Đầu tiên, chúng tôi chuyển đổi cả hai danh sách thành mảng NumPy hoặc ndarrays, tôi. e. , mảng1 và mảng2 Sau đó, chúng tôi nhân hai mảng giống như chúng tôi làm số, tôi. e. , mảng1*mảng2. Cuối cùng, chúng tôi chuyển đổi ndarray thành một danh sách Tuy nhiên, độ dài của cả hai danh sách cần phải giống nhau. Nếu không, chúng tôi sẽ nhận được một lỗi. Hãy xem nào
import numpy as np list_one = [3, 4, 5 ,6, 8, 9] list_two = [4, 5, 1, 0, 6,] n = min(len(list_one), len(list_two)) #get the minimum length #convert to numpy arrays arr1 = np.array(list_one) arr2 = np.array(list_two) product = arr1[:n]*arr2[:n] #element-wise multiplication #convert numpy array to list product = product.tolist() print("The product of two lists is: ", product)
đầu ra
The product of two lists is: [12, 20, 5, 0, 48]
Ở đây, chúng ta lấy độ dài của mảng nhỏ hơn và chỉ nhân số phần tử đó NumPy là một thư viện mạnh mẽ cho các tính toán khoa học. Nó cung cấp một số phương pháp và công cụ để tạo và làm việc với mảng một cách hiệu quả Do đó, nếu chúng ta muốn tính tích phần tử của dữ liệu lớn thì sử dụng NumPy sẽ rất hiệu quả Marcel này các cậu. Là tôi, Marcel, hay còn gọi là Maschi. Trên MaschiTuts, đó là tất cả về hướng dẫn. Bất kể chủ đề của bài viết là gì, mục tiêu luôn giống nhau. Cung cấp cho các bạn những hướng dẫn chuyên sâu và hữu ích nhất Sử dụng hàm zip() để nhân hai danh sách trong Python. Nhưng tùy chọn tốt hơn nhiều là Sử dụng khả năng hiểu danh sách kết hợp với chức năng zip() Ví dụ nhân hai danh sách trong PythonMã ví dụ đơn giản nhân hai phần tử danh sách có độ dài bằng nhau từ một danh sách với phần tử có cùng chỉ mục trong danh sách khác Sử dụng zip với vòng lặp
đầu ra Sử dụng hiểu danh sách
đầu ra. [4, 10, 18] sử dụng np. nhân(a,b) ________số 8đầu ra. [ 2 6 12 20] Sử dụng The product of two lists is: [12, 20, 5, 0, 48]0
đầu ra. [1, 4, 15, 220] Hãy bình luận nếu bạn có bất kỳ nghi ngờ hoặc đề xuất nào về chủ đề nhân Python này
Rohit Bằng cấp về Khoa học Máy tính và Kỹ sư. Nhà phát triển ứng dụng và có kinh nghiệm về nhiều ngôn ngữ lập trình. Đam mê công nghệ & thích học hỏi kỹ thuật |