Danh sách hiểu trong Python là một cú pháp dễ dàng và nhỏ gọn để tạo danh sách từ một chuỗi hoặc danh sách khác. Đó là một cách rất ngắn gọn để tạo một danh sách mới bằng cách thực hiện một thao tác trên mỗi mục trong danh sách hiện có. Danh sách hiểu nhanh hơn đáng kể so với xử lý một danh sách bằng cách sử dụng vòng lặp. Show
[expression for element in iterable if condition] Theo cú pháp trên, cú pháp hiểu biết danh sách chứa ba phần: một biểu thức, một hoặc nhiều cho vòng lặp và tùy chọn, một hoặc nhiều điều kiện nếu điều kiện. Danh sách hiểu phải nằm trong khung vuông 2. Kết quả của biểu thức đầu tiên sẽ được lưu trữ trong danh sách mới. Vòng lặp For được sử dụng để lặp lại trên đối tượng có thể tùy chọn bao gồm điều kiện if.Giả sử chúng ta muốn tìm các số chẵn từ 0 đến 20 sau đó chúng ta có thể thực hiện nó bằng cách sử dụng một vòng lặp, như được hiển thị bên dưới:
Kết quả tương tự có thể dễ dàng đạt được bằng cách sử dụng kỹ thuật hiểu danh sách dưới đây.
Trong ví dụ trên, 3 trả về một danh sách mới bằng cách sử dụng danh sách hiểu. Đầu tiên, nó thực thi For Loop 4. Phần tử 5 sẽ được trả về nếu điều kiện được chỉ định 6 đánh giá là TRUE. Nếu điều kiện đánh giá là TRUE, thì biểu thức trước cho vòng lặp sẽ được thực thi và lưu trữ trong danh sách mới. Ở đây, biểu thức 5 chỉ đơn giản lưu trữ giá trị của 5 vào một danh sách mới.Danh sách hiểu biết hoạt động với danh sách chuỗi cũng. Sau đây tạo ra một danh sách các chuỗi mới có chứa 'A'.
Trên đây, biểu thức 9 trả về đúng nếu một phần tử chứa một ký tự 'A'. Vì vậy, danh sách mới sẽ bao gồm các tên có chứa 'A'.Ví dụ sau đây sử dụng danh sách hiểu biết để xây dựng danh sách các bình phương của các số từ 1 đến 10.
Ở trên, A cho Loop 0 được thực thi mà không có điều kiện nếu điều kiện. Biểu thức trước cho Loop 1 lưu trữ bình phương của phần tử trong danh sách mới.Danh sách hiểu biết bằng cách sử dụng các vòng lặp lồng nhauCó thể sử dụng các vòng lặp lồng nhau trong một biểu thức hiểu danh sách. Trong ví dụ sau, tất cả các kết hợp các mục từ hai danh sách dưới dạng một tuple được thêm vào trong một đối tượng danh sách thứ ba.
Liệt kê sự hiểu biết với nhiều điều kiện nếu điều kiệnChúng ta có thể sử dụng lồng nhau nếu các điều kiện với một danh sách hiểu. 0Liệt kê sự hiểu biết với điều kiện IF-ElseVí dụ sau đây cho thấy vòng lặp if..else với sự hiểu biết danh sách. 1 2Danh sách phẳng bằng cách sử dụng danh sách hiểuMột trong những ứng dụng của sự hiểu biết danh sách là làm phẳng danh sách bao gồm nhiều danh sách vào một danh sách duy nhất. 3 4Tìm hiểu thêm về cách làm phẳng danh sách trong Python. Danh sách hiểu so với vòng lặp trong PythonGiả sử, chúng tôi muốn tách các chữ cái của từ 2 và thêm các chữ cái làm mục của một danh sách. Điều đầu tiên xuất hiện trong tâm trí sẽ được sử dụng cho Loop.Ví dụ 1: Lặp lại qua một chuỗi sử dụng cho vòng lặp 5Khi chúng tôi chạy chương trình, đầu ra sẽ là: 6Tuy nhiên, Python có một cách dễ dàng hơn để giải quyết vấn đề này bằng cách sử dụng danh sách hiểu. Danh sách hiểu là một cách thanh lịch để xác định và tạo danh sách dựa trên danh sách hiện có. Hãy để xem cách chương trình trên có thể được viết bằng cách sử dụng toàn bộ danh sách. Ví dụ 2: Lặp lại qua chuỗi bằng cách sử dụng danh sách hiểu 7Khi chúng tôi chạy chương trình, đầu ra sẽ là: 6Tuy nhiên, Python có một cách dễ dàng hơn để giải quyết vấn đề này bằng cách sử dụng danh sách hiểu. Danh sách hiểu là một cách thanh lịch để xác định và tạo danh sách dựa trên danh sách hiện có. Hãy để xem cách chương trình trên có thể được viết bằng cách sử dụng toàn bộ danh sách. 9Ví dụ 2: Lặp lại qua chuỗi bằng cách sử dụng danh sách hiểu Trong ví dụ trên, một danh sách mới được gán cho biến H_Letters và danh sách chứa các mục của chuỗi 'con người'. Chúng tôi gọi hàm 3 để nhận đầu ra.Cú pháp của danh sách hiểu Bây giờ chúng ta có thể xác định nơi sử dụng toàn bộ danh sách.Nếu bạn nhận thấy, 2 là một chuỗi, không phải là một danh sách. Đây là sức mạnh của sự hiểu biết danh sách. Nó có thể xác định khi nào nó nhận được một chuỗi hoặc một tuple và hoạt động trên nó như một danh sách.Bạn có thể làm điều đó bằng cách sử dụng các vòng lặp. Tuy nhiên, không phải mọi vòng lặp đều có thể được viết lại dưới dạng hiểu biết danh sách. Nhưng khi bạn học và cảm thấy thoải mái với các toàn bộ danh sách, bạn sẽ thấy mình thay thế ngày càng nhiều vòng lặp bằng cú pháp thanh lịch này. 0Liệt kê toàn diện so với các chức năng Lambda 1Danh sách toàn diện không phải là cách duy nhất để làm việc trong danh sách. Các chức năng tích hợp khác nhau và các chức năng Lambda có thể tạo và sửa đổi danh sách trong các dòng mã ít hơn. Ví dụ 3: Sử dụng các hàm Lambda bên trong danh sáchKhi chúng tôi chạy chương trình, đầu ra sẽ Tuy nhiên, sự hiểu biết danh sách thường dễ đọc của con người hơn các chức năng Lambda. Nó dễ dàng hơn để hiểu những gì lập trình viên đã cố gắng thực hiện khi sử dụng toàn bộ danh sách. 2Điều kiện trong danh sách hiểu 3Danh sách các hệ thống có thể sử dụng câu lệnh có điều kiện để sửa đổi danh sách hiện có (hoặc các bộ dữ liệu khác). Chúng tôi sẽ tạo danh sách sử dụng toán tử toán học, số nguyên và phạm vi (). Ví dụ 4: Sử dụng nếu có danh sách hiểu 4Điều kiện trong danh sách hiểu 5Danh sách các hệ thống có thể sử dụng câu lệnh có điều kiện để sửa đổi danh sách hiện có (hoặc các bộ dữ liệu khác). Chúng tôi sẽ tạo danh sách sử dụng toán tử toán học, số nguyên và phạm vi ().
Danh sách, number_list, sẽ được điền bởi các mục trong phạm vi từ 0-19 nếu giá trị của vật phẩm chia hết cho 2. Ví dụ 5: Nested nếu có danh sách hiểu 6Điều kiện trong danh sách hiểu 7Danh sách các hệ thống có thể sử dụng câu lệnh có điều kiện để sửa đổi danh sách hiện có (hoặc các bộ dữ liệu khác). Chúng tôi sẽ tạo danh sách sử dụng toán tử toán học, số nguyên và phạm vi (). Ví dụ 4: Sử dụng nếu có danh sách hiểuKhi chúng tôi chạy chương trình trên, đầu ra sẽ là: Danh sách, number_list, sẽ được điền bởi các mục trong phạm vi từ 0-19 nếu giá trị của vật phẩm chia hết cho 2. 8Ví dụ 5: Nested nếu có danh sách hiểu 9Ở đây, danh sách kiểm tra hiểu biết: Y có phải chia cho 2 hay không? Ví dụ 8: Chuyển đổi ma trận bằng cách sử dụng danh sách hiểu biết 0Khi chúng tôi chạy chương trình trên, đầu ra sẽ là: 1Trong chương trình trên, chúng tôi có một ma trận thay đổi có các hàng 7 và cột 8. Chúng tôi cần tìm sự chuyển đổi của ma trận. Đối với điều đó, chúng tôi đã sử dụng danh sách hiểu.** Lưu ý: Các vòng lặp lồng nhau trong danh sách hiểu don don hoạt động như các vòng lặp lồng nhau thông thường. Trong chương trình trên, 9 is executed
before 0. Hence at first, a value is assigned to i then item directed by 1 is appended in the transpose variable.Những điểm chính cần nhớ
Danh sách hiểu trong Python là gì?Một danh sách Python hiểu bao gồm các dấu ngoặc chứa biểu thức, được thực thi cho mỗi phần tử cùng với vòng lặp để lặp lại trên mỗi phần tử trong danh sách Python. Sự hiểu biết danh sách Python cung cấp một cú pháp ngắn hơn nhiều để tạo một danh sách mới dựa trên các giá trị của một danh sách hiện có.consists of brackets containing the expression, which is executed for each element along with the for loop to iterate over each element in the Python list. Python List comprehension provides a much more short syntax for creating a new list based on the values of an existing list.
Danh sách hiểu biết giải thích là gì?Danh sách hiểu là một cách dễ đọc, nhỏ gọn và thanh lịch để tạo một danh sách từ bất kỳ đối tượng có thể lặp lại hiện có nào.Về cơ bản, đó là một cách đơn giản hơn để tạo một danh sách mới từ các giá trị trong danh sách bạn đã có.Nó thường là một dòng mã duy nhất được đặt trong dấu ngoặc vuông.an easy to read, compact, and elegant way of creating a list from any existing iterable object. Basically, it's a simpler way to create a new list from the values in a list you already have. It is generally a single line of code enclosed in square brackets.
Tại sao chúng ta sử dụng danh sách hiểu trong Python?Một lợi ích chính của việc sử dụng danh sách hiểu trong Python là đó là một công cụ duy nhất mà bạn có thể sử dụng trong nhiều tình huống khác nhau.Ngoài việc tạo danh sách tiêu chuẩn, việc hiểu danh sách cũng có thể được sử dụng để lập bản đồ và lọc.Bạn không phải sử dụng một cách tiếp cận khác nhau cho mỗi kịch bản.it's a single tool that you can use in many different situations. In addition to standard list creation, list comprehensions can also be used for mapping and filtering. You don't have to use a different approach for each scenario.
Sự khác biệt giữa danh sách và danh sách hiểu là gì?Vòng lặp là một cách phổ biến để lặp lại thông qua một danh sách.Danh sách hiểu, mặt khác, là một cách hiệu quả hơn để lặp lại thông qua danh sách vì nó đòi hỏi ít dòng mã hơn.Danh sách hiểu biết đòi hỏi ít sức mạnh tính toán hơn so với vòng lặp vì nó chiếm ít không gian và mã hơn.List comprehension, on the other hand, is a more efficient way to iterate through a list because it requires fewer lines of code. List comprehension requires less computation power than a for loop because it takes up less space and code. |