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
Nhân hai Danh sách trong Python bằng cách Sử dụng Vòng lặp
Mộ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ách
Chú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 NumPy
Mộ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
Khả năng hiểu danh sách được sử dụng để thực hiện một số thao tác cho mọi phần tử hoặc chọn một tập hợp con các phần tử đáp ứng một điều kiện
Trên mỗi lần lặp, chúng tôi nhân mục danh sách hiện tại với số đã chỉ định và trả về kết quả
Ngoài ra, bạn có thể sử dụng vòng lặp for
đơn giản
Nhân từng phần tử trong danh sách với một số bằng vòng lặp for
Để nhân mỗi phần tử trong một danh sách với một số
- Khai báo một biến mới lưu danh sách rỗng
- Sử dụng vòng lặp
for
để lặp lại danh sách ban đầu - Trên mỗi lần lặp, nhân mục danh sách hiện tại với số
- Nối kết quả vào danh sách mới
my_list = [2, 4, 6]
result = []
for item in my_list:
result.append[item * 10]
print[result]
Vòng lặp for
hoạt động theo cách rất giống với cách hiểu danh sách, nhưng thay vì trực tiếp trả lại các mục trong danh sách, chúng tôi nối chúng vào một danh sách mới
Bạn cũng có thể sử dụng hàm map[]
để nhân từng phần tử trong danh sách
Hàm nhận một hàm và một iterable làm đối số và gọi hàm với mỗi mục của iterable
Hàm lambda mà chúng ta đã chuyển đến map
được gọi với từng mục trong danh sách, nhân mục đó với 10
và trả về kết quả
Bước cuối cùng là sử dụng lớp list[]
để chuyển đổi đối tượng map
thành một đối tượng 10
1
Nếu bạn làm việc với mảng có nhiều mảng, bạn có thể trực tiếp sử dụng toán tử nhân trên mảng để nhân từng phần tử của nó với một số
Nhân một mảng có nhiều mảng với một số sẽ nhân hiệu quả từng phần tử trong mảng với số đã chỉ định
Lưu ý rằng điều này chỉ hoạt động với các mảng có nhiều mảng. Nếu bạn nhân danh sách python với một số, nó sẽ được lặp lại N lần
Nhân một danh sách Python với N trả về một danh sách mới chứa các phần tử của danh sách ban đầu được lặp lại N lần
Nếu bạn cần nhân tất cả các phần tử trong danh sách, hãy sử dụng hàm 10
2
Nhân tất cả các phần tử trong Danh sách bằng Python
Sử dụng phương pháp 10
2 để nhân tất cả các phần tử trong một danh sách, e. g. 10
4. Phương thức 10
2 tính tích của tất cả các phần tử trong hàm lặp được cung cấp
Đảm bảo nhập mô-đun 10
6 ở trên cùng
Chúng tôi đã sử dụng phương pháp 10
7 để nhân tất cả các phần tử trong danh sách
Phương thức tính tích của tất cả các phần tử trong iterable được cung cấp
Phương thức nhận 2 đối số sau
NameDescriptioniterableMột iterable có các phần tử để tính tích củastartGiá trị bắt đầu cho sản phẩm [mặc định là10
8]Nếu iterable trống, giá trị 10
9 được trả về
Ngoài ra, bạn có thể sử dụng hàm for
0
Nhân tất cả các phần tử trong Danh sách bằng cách sử dụng for
0
Để nhân tất cả các phần tử trong một danh sách
- Truyền hàm lambda và danh sách cho hàm
for
0 - Hàm lambda sẽ lấy bộ tích lũy và giá trị hiện tại và sẽ trả về phép nhân của hai
Hàm nhận 3 tham số sau
NameDescripfunctionMột hàm nhận 2 tham số - giá trị tích lũy và giá trị từ iterable. iterableMỗi phần tử trong iterable sẽ được chuyển thành đối số cho hàm. bộ khởi tạoMột giá trị bộ khởi tạo tùy chọn được đặt trước các mục của phép lặp trong phép tínhHàm lambda được gọi với giá trị tích lũy và giá trị của lần lặp hiện tại và nhân chúng
Nếu chúng tôi cung cấp một giá trị cho đối số for
3, nó sẽ được đặt trước các mục của iterable trong phép tính
Chúng tôi đã thông qua 10
cho đối số trình khởi tạo, vì vậy giá trị của for
5 sẽ là 10
trong lần lặp đầu tiên
Giá trị của for
5 sẽ được đặt thành phần tử đầu tiên trong iterable nếu chúng ta không chuyển giá trị cho for
3
Nếu for
9 trống và for
3 được cung cấp, thì ______7_______3 được trả lại
Nếu for
3 không được cung cấp và iterable chỉ chứa mục 10
8, thì mục đầu tiên được trả lại
Nhân hai danh sách theo từng phần tử trong Python
Để nhân hai danh sách thành phần tử
- Sử dụng hàm
for
4 để nhận một bộ dữ liệu có thể lặp lại với các mục tương ứng - Sử dụng khả năng hiểu danh sách để lặp lại qua lần lặp
- Trên mỗi lần lặp, nhân các giá trị trong bộ dữ liệu hiện tại
Hàm lặp song song qua một số lần lặp và tạo các bộ dữ liệu với một mục từ mỗi lần lặp
Bạn có thể tưởng tượng rằng hàm for
5 lặp qua các danh sách, lấy 1 mục từ mỗi danh sách.
Bộ đầu tiên trong danh sách bao gồm các phần tử trong mỗi danh sách có chỉ số là for
6, bộ thứ hai bao gồm các phần tử trong mỗi danh sách có chỉ số là 10
8, v.v.
Bước cuối cùng là sử dụng khả năng hiểu danh sách để lặp lại đối tượng for
4 và nhân các giá trị trong mỗi bộ
Khả năng hiểu danh sách được sử dụng để thực hiện một số thao tác cho mọi phần tử hoặc chọn một tập hợp con các phần tử đáp ứng một điều kiện
Trên mỗi lần lặp lại, chúng tôi giải nén các giá trị từ bộ dữ liệu và sử dụng toán tử nhân for
9 để nhân chúng
Bạn cũng có thể sử dụng phương pháp này để nhân nhiều phần tử hơn hai danh sách
Ngoài ra, bạn có thể sử dụng hàm map[]
Để nhân hai danh sách thành phần tử
- Sử dụng hàm
map[]
để gọi hàmfor
2 với hai danh sách - Sử dụng lớp
list[]
để chuyển đổi đối tượngmap
thành một danh sách
Hàm nhận một hàm và một iterable làm đối số và gọi hàm với mỗi mục của iterable
Hàm for
5 từ mô-đun for
6 giống với hàm for
7
Bạn có thể tưởng tượng rằng map
gọi hàm for
5 với mỗi mục của hai lần lặp [e. g. các mục ở chỉ mục for
6, sau đó là 10
8, v.v.]
Hàm map
trả về một đối tượng map
, vì vậy chúng ta phải sử dụng lớp list[]
để chuyển đổi kết quả thành một danh sách