Vòng lặp để ánh xạ Python
Nhưng trong Python, thực tế có nhiều cách để đạt được cùng một mục tiêu. Tất nhiên, một số cách thanh lịch hơn những cách khác và trong hầu hết các trường hợp, rõ ràng cách nào tốt hơn Show Chúng ta sẽ xem xét khả năng hiểu danh sách và cách chúng có thể thay thế vòng lặp for, 8 và 9 để tạo chức năng mạnh mẽ trong một dòng mã PythonHiểu danh sách cơ bảnGiả sử tôi muốn tạo một danh sách các số từ 1 đến 10. tôi có thể làm
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình và tôi sẽ nhận được
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Nhưng sử dụng khả năng hiểu danh sách, điều này có thể được thực hiện trong một dòng
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Đây là cú pháp cơ bản của việc hiểu danh sách. 0. Ở đây, iterable là 1, phần tử là 2 và biểu thức là 2. Điều này tương đương với vòng lặp for mà chúng ta đã sử dụng trước đó. chúng tôi thêm 2 vào danh sách trong đó 2 là một số từ 1 đến 11bản đồ()Hàm 8 thường được sử dụng để áp dụng một hàm trên từng phần tử trong một iterable. Truyền vào một hàm và một lần lặp, và 8 sẽ tạo một đối tượng chứa kết quả của việc truyền từng phần tử vào hàmVí dụ: giả sử tôi muốn tạo danh sách ô vuông từ danh sách 8 mà chúng tôi đã tạo trước đó. chúng ta có thể làm 4Vào chế độ toàn màn hình Thoát chế độ toàn màn hình và chúng ta sẽ nhận được 5Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Hoặc chúng ta có thể sử dụng 8 như vậy 7Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Ở đây, chúng tôi chuyển từng phần tử trong 8 vào hàm lambda (đây chỉ là một cách dễ dàng để tạo hàm nếu bạn lười biếng). Đầu ra của việc đặt từng số 41 vào hàm 42 sẽ là bình phương của số. Sử dụng 43, chúng tôi biến đối tượng bản đồ thành một danh sáchThay thế bản đồ () Bằng cách hiểu danh sáchSử dụng hiểu danh sách, chúng ta có thể chỉ cần làm 2Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Điều này sẽ chuyển từng số 44 vào biểu thức 45 và tạo một danh sách mới trong đó các phần tử chỉ đơn giản là bình phương của mỗi số trong 8lọc()Hàm 9 được sử dụng để tạo một tập hợp con của một danh sách hiện có, dựa trên một điều kiện. Truyền vào một hàm và một lần lặp, và 9 sẽ tạo một đối tượng chứa tất cả các phần tử trong đó hàm đánh giá là 49Ví dụ: giả sử tôi muốn lấy danh sách tất cả các số lẻ và danh sách tất cả các số chẵn từ danh sách 8 mà chúng ta đã tạo trước đó. chúng ta có thể làm 0Vào chế độ toàn màn hình Thoát chế độ toàn màn hình và chúng tôi sẽ nhận được 1Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Hoặc chúng ta có thể sử dụng 9 như vậy 3Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Tại đây, tất cả các số sẽ được chuyển vào hàm lambda và nếu 52 là 49 thì số đó sẽ được đưa vào 54. Tương tự như vậy, nếu 55 là 49, số đó sẽ được bao gồm trong 57Thay thế bộ lọc () Bằng cách hiểu danh sáchSử dụng hiểu danh sách, chúng ta có thể chỉ cần làm 0Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Ở đây, chúng tôi đang sử dụng một điều kiện. Cú pháp cho điều này là 58. Điều này tương đương với vòng lặp for mà chúng ta đã sử dụng trước đó — nếu điều kiện 59 được đáp ứng, 44 sẽ được thêm vào 54 và 44 là một phần tử trong vòng lặp 8Hiểu lồng nhauGiả sử chúng ta muốn tạo một ma trận. Điều này sẽ liên quan đến việc tạo danh sách lồng nhau. Sử dụng vòng lặp for, chúng ta có thể làm như sau 1Vào chế độ toàn màn hình Thoát chế độ toàn màn hình và chúng tôi sẽ nhận được 2Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Sử dụng cách hiểu lồng nhau, chúng ta có thể chỉ cần làm 3Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Khả năng hiểu danh sách bên ngoài 74 tạo 5 hàng, trong khi khả năng hiểu danh sách bên trong 75 tạo 5 cộtTừ điển hiểuBạn cũng có thể sử dụng cách hiểu từ điển. Ví dụ: nếu tôi muốn tạo một từ điển ánh xạ từng số trong 8 vào ô vuông tương ứng của chúng, chúng tôi có thể thực hiện 4Vào chế độ toàn màn hình Thoát chế độ toàn màn hình và chúng tôi sẽ nhận được 5Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Hoặc chúng ta có thể sử dụng cách hiểu từ điển 6Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Bạn thậm chí có thể sử dụng cách hiểu từ điển trong cách hiểu danh sách hoặc ngược lại 7Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Tại sao sử dụng hiểu danh sách?
Nhưng này, vào cuối ngày, sự lựa chọn là của bạn. Khả năng hiểu danh sách chỉ là một cách khác để làm những việc tương tự và liệu thứ gì đó 'sạch hơn' và 'rõ ràng hơn' hay không phần lớn là chủ quan. Tuy nhiên, hầu hết mọi người sẽ đồng ý rằng hiểu danh sách là cách tiêu chuẩn hơn để thực hiện mọi việc Bản đồ có hiệu quả hơn vòng lặp Python không?Vì map() được viết bằng C và được tối ưu hóa cao, nên vòng lặp ngụ ý bên trong của nó có thể hiệu quả hơn vòng lặp Python for thông thường. Đây là một lợi thế của việc sử dụng map(). Ưu điểm thứ hai của việc sử dụng map() liên quan đến mức tiêu thụ bộ nhớ. Với vòng lặp for, bạn cần lưu trữ toàn bộ danh sách trong bộ nhớ hệ thống của mình
Bản đồ có giống như vòng lặp for không?bản đồ(viết hoa). Cũng giống như cách mã bên trong vòng lặp for của chúng ta được gọi miễn là điều kiện đúng, mã bên trong map() được gọi một lần cho mỗi phần tử trong mảng. Điều này thực hiện tương tự như vòng lặp for của chúng tôi, nhưng điểm khác biệt lớn là các điều kiện để lặp lại được xử lý cho chúng tôi .
Làm cách nào để tạo bản đồ bằng Python?Hàm Python map()
. ) map() function returns a map object(which is an iterator) of the results after applying the given function to each item of a given iterable (list, tuple etc.) Tham số. niềm vui. Đây là một chức năng mà bản đồ chuyển từng phần tử của lần lặp đã cho. lặp đi lặp lại. Nó là một iterable được ánh xạ.
Bản đồ () trong Python là gì?Bản đồ trong Python là một hàm hoạt động như một trình lặp để trả về kết quả sau khi áp dụng một hàm cho mọi mục của một lần lặp (tuple, danh sách, v.v. ). Nó được sử dụng khi bạn muốn áp dụng một hàm chuyển đổi duy nhất cho tất cả các phần tử có thể lặp lại. Hàm lặp và hàm được truyền dưới dạng đối số cho bản đồ trong Python |