Python nhân danh sách theo danh sách

Nhân hai danh sách trong python có thể là một điều cần thiết trong nhiều tính toán 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 các danh sách còn được 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

Theo cách tiếp cận này, chúng tôi thiết kế các vòng kéo, cái này bên trong cái kia. Vòng lặp bên ngoài theo dõi số 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

Thí dụ

Bản thử trực tiếp

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 để lấy từng phần tử của danh sách lồng nhau và sau đó vòng lặp for có thể được sử dụng để thực hiện phép nhân

Nếu bạn đang làm việc với Python, có nhiều tình huống mà người ta phải tìm các sản phẩm theo chỉ mục của hai danh sách. Hãy xem cách nhân danh sách trong Python bằng các cách tiếp cận khác nhau

Python nhân danh sách

Để nhân một danh sách trong Python, hãy sử dụng hàm zip[]. Zip[] là một hàm Python tích hợp để tạo một trình lặp sẽ tổng hợp các phần tử từ hai hoặc nhiều lần lặp

Bạn cần chuyển các danh sách vào hàm zip[*iterables] để nhận danh sách các bộ dữ liệu ghép nối các phần tử có cùng vị trí từ cả hai danh sách

listA = [1, 2, 3]
listB = [4, 5, 6]
products = []


for dt1, dt2 in zip[listA, listB]:
    products.append[dt1 * dt2]

print[products]

đầu ra

[4, 10, 18]

Trong ví dụ này, đầu tiên, chúng tôi xác định hai danh sách. Sau đó, cả hai danh sách được chuyển vào phương thức zip[] để lấy danh sách các bộ dữ liệu ghép nối các phần tử có cùng vị trí từ cả hai danh sách

Sử dụng vòng lặp for để nhân các phần tử này và nối chúng vào danh sách mới

Sử dụng khả năng hiểu danh sách để nhân danh sách

Khả năng hiểu danh sách cho phép cú pháp ngắn hơn khi bạn muốn tạo danh sách mới dựa trên các giá trị của danh sách hiện có. Nếu không hiểu danh sách, bạn sẽ phải viết một vòng lặp for có kiểm tra điều kiện bên trong, như chúng ta đã thấy trong ví dụ của phần trên

Bạn có thể sử dụng khả năng hiểu danh sách để nhân danh sách trong Python. Đầu tiên, khởi tạo giá trị của sản phẩm thành 1 [không phải 0 bằng 0 nhân với bất kỳ giá trị nào trả về 0]. Sau đó, duyệt đến cuối danh sách và nhân mỗi số với tích

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ố

  1. Khai báo một biến mới lưu danh sách rỗng
  2. Sử dụng vòng lặp for để lặp lại danh sách ban đầu
  3. Trên mỗi lần lặp, nhân mục danh sách hiện tại với số
  4. 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ả về 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 101

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 102

Nhân tất cả các phần tử trong Danh sách bằng Python

Sử dụng phương pháp 102 để nhân tất cả các phần tử trong một danh sách, e. g. 104. Phương thức 102 tính tích của tất cả các phần tử trong vòng lặp được cung cấp

Đảm bảo nhập mô-đun 106 ở trên cùng

Chúng tôi đã sử dụng phương pháp 107 để 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à 108]

Nếu iterable trống, giá trị 109 được trả về

Ngoài ra, bạn có thể sử dụng hàm for0

Nhân tất cả các phần tử trong Danh sách bằng cách sử dụng for0

Để nhân tất cả các phần tử trong một danh sách

  1. Truyền hàm lambda và danh sách cho hàm for0
  2. 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ính

Hà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ố for3, 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 for5 sẽ là 10 trong lần lặp đầu tiên

Giá trị của for5 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 for3

Nếu for9 trống và for3 được cung cấp, thì for3 được trả lại

Nếu for3 không được cung cấp và iterable chỉ chứa mục 108, thì mục đầu tiên được trả lại

Làm cách nào để nhân từng phần tử trong danh sách với danh sách khác Python?

Sử dụng cú pháp [phần tử * số cho phần tử trong danh sách] để nhân từng phần tử trong danh sách với số. .
a_list = [1, 2, 3]
nhân_list = [phần tử * 2 cho phần tử trong a_list]
in [multiplied_list]

Chúng ta có thể nhân danh sách bằng Python không?

Danh sách và chuỗi có nhiều điểm chung. Cả hai đều có trình tự và giống như trăn, chúng dài ra khi bạn cho chúng ăn. Giống như một chuỗi, chúng ta có thể nối và nhân danh sách Python .

Chủ Đề