Hướng dẫn questions on list comprehension in python - câu hỏi về hiểu danh sách trong python
Show
Làm thế nào một người mới Python có thể nổi bật trong một biển cạnh tranh? Hiển thị danh sách hiểu biết của bạnLà một kỹ sư đảm bảo chất lượng phần mềm, tôi sử dụng Python làm một công cụ trong rương công cụ tự động hóa thử nghiệm của mình. Hiểu danh sách là một trong những kỹ thuật Python không chỉ thêm sự tinh tế vào mã của bạn, mà còn tiết kiệm các chu kỳ CPU và được coi là ’pythonic. Danh sách hiểu biết là gì?Cú pháp hiểu danh sách có phần của một vòng lặp được nén cho vòng lặp. Cổ điển ‘cho vòng lặpĐưa ra một danh sách các số, xóa tất cả các số lẻ khỏi danh sách:
Cách hiểu danh sách
Thật vinh quang, thật xinh đẹp, rất pythonic;) Liệt kê cú pháp hiểu biếtPhần khó nhất của danh sách học tập hiểu đối với tôi là thực sự hiểu cú pháp. Phương pháp tốt nhất để giải thích IMO là từ Hướng dẫn - Danh sách Python Hiểu với các ví dụ Một truyền thống cho vòng lặp: Dịch sang danh sách hiểu: Và một hình ảnh tuyệt vời khác Ví dụĐưa ra một danh sách các số, xóa phao (số có số thập phân)
Thực tiễnTôi cần thực hành, vì vậy tôi đã sử dụng danh sách này. Mỗi thử thách dưới đây liên kết đến một GIST giải pháp.
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ừ 0 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
Khi chúng tôi chạy chương trình, đầu ra sẽ là: ['h', 'u', 'm', 'a', 'n'] Tuy 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
Khi chúng tôi chạy chương trình, đầu ra sẽ là: ['h', 'u', 'm', 'a', 'n'] Tuy 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.[expression for item in list] Ví 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 1 để 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, 0 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.
Liệt kê toàn diện so với các chức năng Lambda ['h','u','m','a','n'] Danh 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. 0Điều kiện trong danh sách hiểu 1Danh 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 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 ().
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 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 (). 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. 6Ví dụ 5: Nested nếu có danh sách hiểu 7Ở đây, danh sách kiểm tra hiểu biết: Y có phải chia cho 2 hay không? Y có phải chia 5 hay không? 8Điều kiện trong danh sách hiểu 9Danh 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 The nested loops in list comprehension don’t work like normal nested loops. In the above program, 7 is executed
before 8. Hence at first, a value is assigned to i then item directed by 9 is appended in the transpose variable.Khi chúng tôi chạy chương trình trên, đầu ra sẽ là:
Làm thế nào để bạn giải quyết danh sách hiểu trong Python?Viết lại các vòng lặp và bản đồ () gọi như một danh sách hiểu trong Python ... Khởi tạo một danh sách trống .. Vòng lặp trên một phần tử hoặc một loạt các yếu tố .. Nối từng phần tử vào cuối danh sách .. Danh sách hiểu trong Python với ví dụ là gì?Danh sách Hiểu biết cung cấp một cú pháp ngắn hơn khi bạn muốn 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ó.Ví dụ: Dựa trên danh sách các loại trái cây, bạn muốn có một danh sách mới, chỉ chứa các loại trái cây có chữ "A" trong tên.offers a shorter syntax when you want to create a new list based on the values of an existing list. Example: Based on a list of fruits, you want a new list, containing only the fruits with the letter "a" in the name.
Danh sách hiểu biết nhanh hơn hoặc cho vòng lặp nhanh hơn?Danh sách toàn diện nhanh hơn các vòng lặp để tạo danh sách.Nhưng, điều này là do chúng tôi đang tạo một danh sách bằng cách nối thêm các yếu tố mới vào mỗi lần lặp. to create lists. But, this is because we are creating a list by appending new elements to it at each iteration.
Danh sách hiểu biết nhanh hơn hoặc Lambda là gì?Biểu diễn đồ họa của Danh sách Hiểu so với Lambda + Filter.Như chúng ta có thể thấy từ biểu đồ rằng danh sách tổng thể hiểu nhanh hơn nhiều so với hàm bộ lọc.Bộ lọc chỉ nhanh hơn cho một danh sách nhỏ.list comprehension is much faster than the filter function. The filter is faster for a small list only. |