Cách xóa danh sách khỏi danh sách lồng nhau trong Python
Câu trả lời ngắn. Bạn có thể xóa tất cả danh sách trống khỏi danh sách bằng cách sử dụng câu lệnh hiểu danh sách Làm cách nào để xóa Danh sách trống khỏi Danh sách Danh sách trong Python? Xem video này trên YouTube Trong phần sau, bạn sẽ tìm hiểu về hai phương pháp sử dụng tính năng hiểu danh sách và hàm filter() để xóa tất cả danh sách trống khỏi danh sách danh sách Nhưng trước đó, hãy tự chơi với mã Phương pháp 1. Danh sách hiểuLàm cách nào bạn có thể xóa tất cả danh sách trống khỏi danh sách danh sách?
và bạn muốn loại bỏ tất cả các danh sách trống để lấy danh sách các danh sách
Dung dịch. Sử dụng khả năng hiểu danh sách lst = [[1, 2, 3], [1, 2], [], [], [], [1, 2, 3, 4], [], []] print([x for x in lst if x]) # [[1, 2, 3], [1, 2], [1, 2, 3, 4]] Điều kiện nếu lst = [[1, 2, 3], [1, 2], [], [], [], [1, 2, 3, 4], [], []] print(list(filter(lambda x: x, lst)))0 và phần tử được đưa vào danh sách mới Bạn có thể hình dung quy trình thực thi tại đây bằng cách nhấp vào nút “Tiếp theo” Phương pháp 2. lọc()Một cách khác là sử dụng hàm lst = [[1, 2, 3], [1, 2], [], [], [], [1, 2, 3, 4], [], []] print(list(filter(lambda x: x, lst)))0 để xóa tất cả danh sách trống khỏi danh sách danh sách lst = [[1, 2, 3], [1, 2], [], [], [], [1, 2, 3, 4], [], []] print(list(filter(lambda x: x, lst))) Hàm filter() nhận hai đối số
Là chức năng quyết định bộ lọc, bạn sử dụng chức năng nhận dạng chỉ chuyển danh sách qua. Tại sao điều này làm việc? . Tất cả các danh sách khác sẽ được đánh giá là lst = [[1, 2, 3], [1, 2], [], [], [], [1, 2, 3, 4], [], []] print(list(filter(lambda x: x, lst)))0 (và do đó, vượt qua bài kiểm tra lọc) Những bài viết liên quan
Đi đâu từ đây?Đủ lý thuyết. Hãy thực hành một số Các lập trình viên được trả sáu con số trở lên vì họ có thể giải quyết vấn đề hiệu quả hơn bằng cách sử dụng trí thông minh máy móc và tự động hóa Để trở nên thành công hơn trong việc viết mã, hãy giải quyết nhiều vấn đề thực tế hơn cho người thực. Đó là cách bạn trau dồi những kỹ năng bạn thực sự cần trong thực tế. Rốt cuộc, việc sử dụng lý thuyết học tập mà không ai cần là gì? Bạn xây dựng các kỹ năng mã hóa có giá trị cao bằng cách làm việc trên các dự án mã hóa thực tế Bạn có muốn ngừng học với các dự án đồ chơi và tập trung vào các dự án mã thực tế giúp bạn kiếm tiền và giải quyết các vấn đề thực sự cho mọi người không? 🚀 Nếu câu trả lời của bạn là CÓ. , cân nhắc trở thành nhà phát triển Python tự do. Đó là cách tốt nhất để tiếp cận nhiệm vụ cải thiện kỹ năng Python của bạn—ngay cả khi bạn là người mới hoàn toàn Nếu bạn chỉ muốn tìm hiểu về cơ hội làm việc tự do, vui lòng xem hội thảo trên web miễn phí của tôi “Cách xây dựng kỹ năng Python có thu nhập cao của bạn” và tìm hiểu cách tôi phát triển công việc viết mã của mình trực tuyến cũng như cách bạn có thể làm được—từ sự thoải mái của bạn Tham gia hội thảo trên web miễn phí ngay bây giờ Chris Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners (NoStarch 2020), đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây Toán tử in kiểm tra tư cách thành viên. Ví dụ: lst = [[1, 2, 3], [1, 2], [], [], [], [1, 2, 3, 4], [], []] print(list(filter(lambda x: x, lst)))3 đánh giá thành lst = [[1, 2, 3], [1, 2], [], [], [], [1, 2, 3, 4], [], []] print(list(filter(lambda x: x, lst)))0 nếu x là thành viên của lst = [[1, 2, 3], [1, 2], [], [], [], [1, 2, 3, 4], [], []] print(list(filter(lambda x: x, lst)))6, nếu không, nó đánh giá thành False lst = [[1, 2, 3], [1, 2], [], [], [], [1, 2, 3, 4], [], []] print(list(filter(lambda x: x, lst)))8 trả về phủ định của lst = [[1, 2, 3], [1, 2], [], [], [], [1, 2, 3, 4], [], []] print(list(filter(lambda x: x, lst)))3 Nếu điều kiện được đáp ứng, chúng tôi sử dụng phương pháp lst = [[1, 2, 3], [1, 2], [], [], [], [1, 2, 3, 4], [], []] print(list(filter(lambda x: x, lst)))0 để thêm danh sách vào danh sách mới Danh sách. Phương thức append() thêm một mục vào cuối danh sách Danh sách mới không chứa bất kỳ danh sách trùng lặp nào Ngoài ra, bạn có thể sử dụng phương pháp lst = [[1, 2, 3], [1, 2], [], [], [], [1, 2, 3, 4], [], []] print(list(filter(lambda x: x, lst)))1 Để xóa các bản sao khỏi danh sách các danh sách
Chúng tôi đã sử dụng itertools. phương pháp nhóm để loại bỏ các bản sao khỏi danh sách các danh sách Lưu ý rằng danh sách phải được sắp xếp trước khi chúng ta sử dụng phương thức lst = [[1, 2, 3], [1, 2], [], [], [], [1, 2, 3, 4], [], []] print(list(filter(lambda x: x, lst)))02 vì phương thức này tạo ra một nhóm mới mỗi khi khóa thay đổi Chúng tôi đã sử dụng biểu thức trình tạo để lặp qua trình vòng lặp và sử dụng dấu gạch dưới để bỏ qua các đối tượng lst = [[1, 2, 3], [1, 2], [], [], [], [1, 2, 3, 4], [], []] print(list(filter(lambda x: x, lst)))03 Biểu thức trình tạo đượ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 Lưu ý rằng phương pháp này yêu cầu chúng tôi sắp xếp danh sách trước Danh sách. phương pháp sắp xếp sắp xếp danh sách tại chỗ và nó chỉ sử dụng so sánh lst = [[1, 2, 3], [1, 2], [], [], [], [1, 2, 3, 4], [], []] print(list(filter(lambda x: x, lst)))04 giữa các mục Ngoài ra, bạn có thể chuyển đổi danh sách danh sách thành tập hợp Để xóa các bản sao khỏi danh sách các danh sách
Lưu ý rằng chúng tôi phải chuyển đổi từng danh sách lồng nhau thành lst = [[1, 2, 3], [1, 2], [], [], [], [1, 2, 3, 4], [], []] print(list(filter(lambda x: x, lst)))07 trước khi chuyển đổi thành lst = [[1, 2, 3], [1, 2], [], [], [], [1, 2, 3, 4], [], []] print(list(filter(lambda x: x, lst)))05 Điều này là cần thiết vì bộ dữ liệu là bất biến và có thể băm, trong khi danh sách có thể thay đổi và không thể băm (không thể là thành viên của lst = [[1, 2, 3], [1, 2], [], [], [], [1, 2, 3, 4], [], []] print(list(filter(lambda x: x, lst)))05) Các đối tượng tập hợp là một tập hợp các phần tử duy nhất không có thứ tự, vì vậy khi chúng tôi chuyển đổi danh sách các bộ dữ liệu thành lst = [[1, 2, 3], [1, 2], [], [], [], [1, 2, 3, 4], [], []] print(list(filter(lambda x: x, lst)))05, tất cả các phần tử trùng lặp sẽ tự động bị xóa Tuy nhiên, một điều cần lưu ý - lst = [[1, 2, 3], [1, 2], [], [], [], [1, 2, 3, 4], [], []] print(list(filter(lambda x: x, lst)))05 đối tượng không có thứ tự, vì vậy bạn không đảm bảo rằng thứ tự của các mục trong danh sách sẽ được giữ nguyên Nếu bạn cần chắc chắn rằng thứ tự của các bộ trong danh sách sẽ được giữ nguyên, hãy sử dụng giải pháp vòng lặp Lớp set() lấy một đối số tùy chọn có thể lặp lại và trả về một đối tượng lst = [[1, 2, 3], [1, 2], [], [], [], [1, 2, 3, 4], [], []] print(list(filter(lambda x: x, lst)))05 mới với các phần tử được lấy từ đối tượng có thể lặp lại |