Tôi có một danh sách hỗn hợp trông như thế này: Show
Nó được tạo bằng lệnh này:
Có cách nào để chuyển đổi nó thành:
Tôi đã thử điều này, nhưng nó đã làm phẳng ngay cả chuỗi 'nonrbp' không phải là thứ tôi muốn: Đối với độ phẳng một cấp, nếu bạn quan tâm đến tốc độ, điều này nhanh hơn bất kỳ câu trả lời nào trước đây trong mọi điều kiện tôi đã thử. . bằng Slice (là bản sao khối cấp thấp hơn bất kỳ phương thức Iterator nào): Nội phân Chính showShow
Có một số cách để làm phẳng một danh sách các danh sách trong Python. Bạn có thể sử dụng khả năng hiểu danh sách, thư viện ITERTOOLS hoặc đơn giản là lặp qua danh sách các danh sách thêm từng mục vào một danh sách riêng, v.v. Hãy xem chúng hoạt động thông qua các ví dụ theo sau là đánh giá thời gian chạy của từng mục.
Có một số cách để làm phẳng một danh sách các danh sách trong Python. Bạn có thể sử dụng khả năng hiểu danh sách, thư viện ITERTOOLS hoặc đơn giản là lặp qua danh sách các danh sách thêm từng mục vào một danh sách riêng, v.v. Hãy xem chúng hoạt động thông qua các ví dụ theo sau là đánh giá thời gian chạy của từng mục.
Tham gia một danh sách các danh sách vào danh sách bằng cách sử dụng vòng lặp trong Python
Tham gia danh sách các danh sách vào danh sách bằng phương thức chuỗi () Tại sao chúng ta cần tham gia một danh sách các danh sách vào danh sáchMột danh sách các danh sách là định dạng 2 chiều, còn được gọi là danh sách lồng nhau, chứa một số danh sách phụ. Danh sách là một trong những cấu trúc dữ liệu linh hoạt nhất trong Python, vì vậy việc tham gia một danh sách các danh sách vào một danh sách 1-D có thể có lợi. Ở đây, chúng tôi sẽ chuyển đổi danh sách danh sách này thành một cấu trúc số ít nơi danh sách mới sẽ bao gồm các yếu tố có trong mỗi danh sách phụ từ danh sách danh sách. Trong ngôn ngữ Python, quá trình này còn được gọi là làm phẳng. Danh sách 1-D chứa tất cả các yếu tố là một cách tiếp cận tốt hơn như:
Tham gia một danh sách các danh sách vào danh sách bằng cách sử dụng vòng lặp trong PythonPhương pháp dễ nhất để chuyển đổi danh sách các danh sách thành danh sách 1-D là triển khai một vòng lặp lồng nhau với điều kiện IF cho các yếu tố riêng biệt có mặt. Bạn có thể làm điều này bằng cách:
Output:
Trong đoạn mã trên, chúng tôi sử dụng lồng nhau cho các vòng lặp. Vòng lặp đầu tiên chọn từng phần tử trong danh sách chính và kiểm tra xem đó có phải là loại danh sách không. Nếu phần tử phụ là một danh sách, nó sẽ khởi tạo một vòng lặp ____22 khác để lặp lại danh sách phụ này và thêm các giá trị của nó vào danh sách mới. Mặt khác, nó nối các phần tử duy nhất được tìm thấy tại vị trí đó. Sử dụng vòng lặp 2 lồng nhau hoạt động với một danh sách danh sách thường xuyên và không đều nhưng là một cách tiếp cận vũ lực.Tham gia danh sách các danh sách vào danh sách bằng cách sử dụng danh sách hiểuMột phương pháp khác để chuyển đổi một danh sách lồng nhau thành một danh sách duy nhất là sử dụng danh sách hiểu. Danh sách hiểu biết cung cấp một dòng mã sạch dễ hiểu để tạo danh sách hoàn toàn mới bằng các cấu trúc khác như chuỗi, mảng, danh sách lồng nhau, v.v. Hãy cho chúng tôi xem cách bạn có thể sử dụng danh sách hiểu để giải quyết vấn đề của chúng tôi:
Output:
Trong đoạn mã trên, chúng tôi chỉ định việc tạo một danh sách mới với các phần tử được cung cấp bởi từng mục của từng danh sách phụ được tìm thấy trong danh sách ban đầu của chúng tôi. Bạn cũng có thể kết hợp các danh sách phụ chứa các yếu tố các loại dữ liệu khác nhau vào danh sách 1-D của bạn. Tham gia một danh sách các danh sách vào một danh sách bằng cách sử dụng đệ quy trong PythonRecursion cung cấp một cách khác để làm phẳng danh sách các danh sách trong Python. Hãy cho chúng tôi xem cách bạn có thể triển khai đệ quy để tạo một danh sách duy nhất từ danh sách danh sách: 0Output: 1Trong đoạn mã trên, chúng tôi đã xác định một hàm đệ quy có tên 6 lấy danh sách các danh sách, 7 là tham số của nó. Nếu danh sách danh sách chứa một phần tử duy nhất, nó sẽ được trả về như vậy.Mặt khác, một câu lệnh IF có 8 được sử dụng để kiểm tra xem danh sách tại vị trí 0 của danh sách danh sách của chúng tôi là một danh sách.Nếu đó là sự thật, thì chúng ta sẽ trả về các giá trị của danh sách phụ tại [0] và gọi hàm của chúng ta, 6 một lần nữa như một lập luận.Bây giờ chúng tôi hãy xem làm thế nào để tham gia danh sách lồng nhau vào một danh sách bằng cách sử dụng các chức năng được xây dựng. Tham gia một danh sách các danh sách vào danh sách bằng cách sử dụng các chức năng Python được xây dựngChúng ta có thể sử dụng hàm sum () và các hàm lambda để tham gia một danh sách các danh sách trong Python. Tham gia danh sách các danh sách bằng hàm sum ()Bạn có thể sử dụng hàm tổng được xây dựng để tạo danh sách 1-D từ danh sách danh sách. 2Output: 3Trong chương trình trên, hàm tổng được truyền với hai tham số; Đầu tiên là danh sách các danh sách mà nó sẽ lặp lại và lần thứ hai là bắt đầu danh sách 1-D của chúng tôi ban đầu trống. Tham gia một danh sách các danh sách sử dụng chức năng LambdaBạn cũng có thể sử dụng Lambda, tức là, một hàm ẩn danh, để chuyển đổi danh sách các danh sách thành một danh sách. Hãy cho chúng tôi xem với một ví dụ về mã: 4Output: 5Trong chương trình trên, chúng tôi xác định hàm lambda đã lặp lại từng phần tử của một mục, tức là, một danh sách phụ trong danh sách danh sách và thêm phần tử đó vào danh sách đơn bằng cách sử dụng 0.Hãy cho chúng tôi xem cách bạn có thể chuyển đổi danh sách danh sách thành danh sách 1-D bằng các thư viện Python. Một trong những cách nhanh nhất mà bạn có thể sử dụng để chuyển đổi danh sách 2-D thành danh sách 1-D trong Python là bằng cách sử dụng mô-đun functools của nó, cung cấp các chức năng để hoạt động hiệu quả với các chức năng cao hơn hoặc phức tạp. Chúng ta có thể sử dụng chức năng 1 được cung cấp trong mô -đun functools để tham gia danh sách danh sách vào danh sách, như được hiển thị trong mã bên dưới: 6Output:
Trong đoạn mã trên, danh sách 1-D mới được xác định với hàm 1 sử dụng hàm 3 để kết hợp tất cả các yếu tố từ danh sách phụ của danh sách danh sách của chúng tôi chuyển từ trái sang phải.Tốt nhất là nên nhớ thêm nhập khẩu cho 4 và 5 vì phương pháp này yêu cầu cả hai.Tham gia danh sách các danh sách vào danh sách bằng phương thức chuỗi ()Một thư viện Python khác, được gọi là 6, chứa phương thức 7 mà bạn có thể sử dụng để chuyển đổi danh sách danh sách thành danh sách 1-D. Hãy cho chúng tôi xem làm thế nào: 8Output: 9Trong chương trình trên, phương thức 7 được sử dụng để lặp lại tất cả các danh sách phụ trong danh sách danh sách và trả về một danh sách có thể lặp lại duy nhất chứa tất cả các yếu tố của tất cả các danh sách phụ.Tham gia danh sách các danh sách vào danh sách bằng mô -đun NumpyThư viện Numpy cung cấp các chức năng để kết hợp chuỗi con và làm phẳng chúng vào một danh sách 1-D duy nhất. Chúng ta hãy xem cách bạn có thể chuyển đổi danh sách lồng nhau thành danh sách bằng phương thức 9. 0Output: 3Trong đoạn mã trên, chúng tôi đã sử dụng danh sách danh sách của mình, giống như các chương trình trên và tạo một danh sách mới có tên 0 bằng các hàm ________ 41 2 và 3.Bài viết liên quan - Danh sách PythonLàm thế nào để bạn tham gia một danh sách các danh sách trong Python?Để tham gia một danh sách các danh sách trong Python:.. Khai báo một biến mới và đặt nó thành một danh sách trống .. Sử dụng một vòng lặp để lặp qua danh sách hai chiều .. Sử dụng một vòng lặp cho vòng lặp để lặp qua mỗi danh sách lồng nhau .. Nối từng mục vào danh sách trống .. Làm cách nào để hợp nhất một danh sách vào một danh sách khác trong Python?Trong Python, chúng ta có thể sử dụng toán tử + để hợp nhất nội dung của hai danh sách thành một danh sách mới. Ví dụ: chúng ta có thể sử dụng toán tử + để hợp nhất hai danh sách, tức là nó đã trả về một danh sách được nối mới, chứa nội dung của cả List_1 và List_2.use the + operator to merge the contents of two lists into a new list. For example, We can use + operator to merge two lists i.e. It returned a new concatenated lists, which contains the contents of both list_1 and list_2. Làm cách nào để đặt nhiều danh sách vào một danh sách?Sử dụng toán tử + Toán tử + thực hiện một công việc thẳng về phía trước là tham gia các danh sách với nhau. Chúng tôi chỉ áp dụng toán tử giữa tên của danh sách và kết quả cuối cùng được lưu trữ trong danh sách lớn hơn. Trình tự của các yếu tố trong danh sách được bảo tồn. The + operator does a straight forward job of joining the lists together. We just apply the operator between the name of the lists and the final result is stored in the bigger list. The sequence of the elements in the lists are preserved. Làm cách nào để lập danh sách trong một danh sách trong Python?Có một số cách để làm phẳng một danh sách các danh sách trong Python. Bạn có thể sử dụng khả năng hiểu danh sách, thư viện ITERTOOLS hoặc đơn giản là lặp qua danh sách các danh sách thêm từng mục vào một danh sách riêng, v.v. Hãy xem chúng hoạt động thông qua các ví dụ theo sau là đánh giá thời gian chạy của từng mục.use a list comprehension, the itertools library, or simply loop through the list of lists adding each item to a separate list, etc. Let's see them in action through examples followed by a runtime assessment of each. |