Hướng dẫn how do i turn a list into a single list in python? - làm cách nào để chuyển một danh sách thành một danh sách duy nhất trong python?

old_list = [1,2,3,['a','b'],4,5,6,['c','d',[11,22,33,'aa','bb','cc',[111,222,333,['aaa','bbb','ccc',[1111,2222,['aaaa','bbbb',[11111,22222]]]]]],'e']]

new_list = []

def my_fun(temp_list):
    for ele in temp_list:
        if type(ele) == list:
            my_fun(ele)
        else:
            new_list.append(ele)


my_fun(old_list)
print old_list
print new_list

output:
old_list = [1, 2, 3, ['a', 'b'], 4, 5, 6, ['c', 'd', [11, 22, 33, 'aa', 'bb', 'cc', [111, 222, 333, ['aaa', 'bbb', 'ccc', [1111, 2222, ['aaaa', 'bbbb', [11111, 22222]]]]]], 'e']]
new_list = [1, 2, 3, 'a', 'b', 4, 5, 6, 'c', 'd', 11, 22, 33, 'aa', 'bb', 'cc', 111, 222, 333, 'aaa', 'bbb', 'ccc', 1111, 2222, 'aaaa', 'bbbb', 11111, 22222, 'e']

Sử dụng đệ quy để chuyển đổi danh sách đa lồng vào danh sách cắt lát.

Ví dụ hoàn chỉnh như sau,

# List of list
listOfList = [ [1, 2, 3, 4, 5],
                [11, 22, 33, 44, 55],
                [17, 18, 19, 20, 21] ]
7 & nbsp;

# List of list
listOfList = [ [1, 2, 3, 4, 5],
                [11, 22, 33, 44, 55],
                [17, 18, 19, 20, 21] ]

Làm cách nào để chuyển đổi danh sách thành một danh sách duy nhất trong Python?

[1, 2, 3, 4, 5, 11, 22, 33, 44, 55, 17, 18, 19, 20, 21]

Khởi tạo danh sách danh sách với dữ liệu giả và đặt tên cho dữ liệu ..

Bây giờ, khởi tạo một danh sách trống có tên là Flat_list ..

Lặp lại dữ liệu. Giải nén tất cả các yếu tố từ danh sách hiện tại. Thêm chúng vào FLAT_LIST bằng phương pháp Danh sách nối tiếp ..

# List of list
listOfList = [ [1, 2, 3, 4, 5],
                [11, 22, 33, 44, 55],
                [17, 18, 19, 20, 21] ]

# Use list comprehension to convert a list of lists to a flat list 
flatList = [ item for elem in listOfList for item in elem]

print('Flat List : ', flatList)        

Đầu ra:

Flat List :  [1, 2, 3, 4, 5, 11, 22, 33, 44, 55, 17, 18, 19, 20, 21]

In kết quả ..

Sử dụng danh sách.extend () để chuyển đổi danh sách danh sách thành danh sách phẳng

Trong loại dữ liệu danh sách Python cung cấp một phương thức để thêm tất cả các nội dung của một thứ khác vào danh sách hiện có,

list.extend(iterable)

Nó mở rộng đối tượng Danh sách hiện có bằng cách nối thêm tất cả các nội dung được cho là có thể. Hãy để sử dụng nó để chuyển đổi danh sách danh sách thành danh sách phẳng,

# List of list
listOfList = [ [1, 2, 3, 4, 5],
                [11, 22, 33, 44, 55],
                [17, 18, 19, 20, 21] ]

flatList = []
for elem in listOfList:
    flatList.extend(elem)

print('Flat List : ', flatList)

Đầu ra:

Flat List :  [1, 2, 3, 4, 5, 11, 22, 33, 44, 55, 17, 18, 19, 20, 21]

Nó đã hoạt động như thế nào?

Quảng cáo

Chúng tôi đã tạo một danh sách trống mới. Sau đó, sử dụng cho Loop, chúng tôi đã lặp lại danh sách danh sách và sau đó cho mỗi danh sách nội bộ đã thêm các yếu tố riêng lẻ của nó vào danh sách phẳng mới của chúng tôi bằng danh sách.extend ().

Chúng tôi đã đạt được kết quả của mình, nhưng có một cách khác để làm điều này,

Sử dụng danh sách.append () để chuyển đổi danh sách danh sách thành danh sách phẳng

Trong loại dữ liệu danh sách Python cung cấp một phương thức để thêm một mục ở cuối danh sách,

list.append(x)

Hãy để sử dụng nó để chuyển đổi danh sách danh sách thành danh sách phẳng,

flatList = []
for elem in listOfList:
    for item in elem:
        flatList.append(item)

print('Flat List : ', flatList)            

Đầu ra:

Flat List :  [1, 2, 3, 4, 5, 11, 22, 33, 44, 55, 17, 18, 19, 20, 21]

Nó đã hoạt động như thế nào?

Chúng tôi đã tạo một danh sách trống mới. Sau đó, sử dụng cho Loop, chúng tôi đã lặp lại trong danh sách các danh sách, sau đó cho mỗi danh sách nội bộ được lặp lại trên các yếu tố riêng lẻ trong danh sách đó. Sau đó thêm các yếu tố riêng lẻ đó vào danh sách mới bằng danh sách.append ()

Tất cả các giải pháp trên sẽ hoạt động trong trường hợp danh sách danh sách. Nhưng điều gì sẽ xảy ra nếu chúng ta có danh sách lồng nhau như Danh sách số & Danh sách. Ngoài ra, danh sách nội bộ có thể chứa nhiều danh sách hơn. Làm thế nào để tạo một danh sách phẳng từ loại danh sách lồng nhau này?

Làm thế nào để chuyển đổi một danh sách lồng nhau thành một danh sách phẳng?

Giả sử chúng ta có một danh sách lồng nhau có chứa một số số, một số danh sách và các danh sách nội bộ này cũng chứa một số số & danh sách, tức là.

# List of list
listOfList = [ [1, 2, 3, 4, 5],
                [11, 22, 33, 44, 55],
                [17, 18, 19, 20, 21] ]
1

Bây giờ chúng tôi muốn chuyển đổi loại danh sách lồng nhau này thành một danh sách phẳng như,

# List of list
listOfList = [ [1, 2, 3, 4, 5],
                [11, 22, 33, 44, 55],
                [17, 18, 19, 20, 21] ]
2

Để làm điều đó, chúng tôi đã tạo ra một chức năng đệ quy,

# List of list
listOfList = [ [1, 2, 3, 4, 5],
                [11, 22, 33, 44, 55],
                [17, 18, 19, 20, 21] ]
3

Nó chấp nhận một danh sách lồng nhau làm đối số, sau đó lặp lại trên từng yếu tố trong danh sách đó. Đối với mỗi phần tử, nó kiểm tra xem loại của nó có phải là danh sách hay không.

  • Nếu có, thì một lần nữa gọi cùng một hàm flattennestedList () với phần tử này (danh sách) để lấy một danh sách phẳng ra khỏi nó. Sau đó mở rộng danh sách căn hộ chính với danh sách căn hộ được trả lại.
  • Trong khi đó, nếu phần tử không phải là một danh sách thì nó sẽ thêm vào cuối danh sách bằng danh sách.append (),

Bây giờ, hãy để sử dụng chức năng này để chuyển đổi danh sách lồng nhau của chúng tôi thành danh sách phẳng, tức là.

# List of list
listOfList = [ [1, 2, 3, 4, 5],
                [11, 22, 33, 44, 55],
                [17, 18, 19, 20, 21] ]
4

Đầu ra:

# List of list
listOfList = [ [1, 2, 3, 4, 5],
                [11, 22, 33, 44, 55],
                [17, 18, 19, 20, 21] ]
5

Nó đã hoạt động như thế nào?

# List of list
listOfList = [ [1, 2, 3, 4, 5],
                [11, 22, 33, 44, 55],
                [17, 18, 19, 20, 21] ]
6

Đầu ra:

Nó đã hoạt động như thế nào?
 

Làm cách nào để chuyển đổi danh sách thành một danh sách duy nhất trong Python?

Khởi tạo danh sách danh sách với dữ liệu giả và đặt tên cho dữ liệu ..
Bây giờ, khởi tạo một danh sách trống có tên là Flat_list ..
Lặp lại dữ liệu. Giải nén tất cả các yếu tố từ danh sách hiện tại. Thêm chúng vào FLAT_LIST bằng phương pháp Danh sách nối tiếp ..
In kết quả ..

Làm cách nào để chuyển đổi danh sách thành một danh sách?

Trong bài viết này, chúng tôi sẽ đề cập đến 5 cách tiếp cận khác nhau để danh sách một danh sách ...
Sử dụng một vòng lặp lồng ..
Sử dụng danh sách hiểu biết ..
Sử dụng đệ quy ..
Sử dụng một mô -đun numpy ..
Sử dụng phương thức SUM-BUILD SUM () của Python ..

Làm cách nào để lập danh sách trong danh sách Python?

Trong Python, chúng ta có thể tạo một danh sách bằng cách xung quanh tất cả các phần tử với dấu ngoặc vuông [] và mỗi phần tử được phân tách bằng dấu phẩy.Nó có thể được sử dụng để lưu trữ số nguyên, float, chuỗi và nhiều hơn nữa.Python cung cấp một tùy chọn tạo danh sách trong danh sách.surrounding all the elements with square brackets [] and each element separated by commas. It can be used to store integer, float, string and more. Python provides an option of creating a list within a list.

Làm thế nào để bạn làm phẳng một danh sách các danh sách?

Làm phẳng một danh sách các danh sách đòi hỏi phải chuyển đổi danh sách 2D thành danh sách 1D bằng cách không tổ chức mỗi mục danh sách được lưu trữ trong danh sách các danh sách - tức là, chuyển đổi [[1, 2, 3], [4, 5, 6], [7, 8, 9]] vào [1, 2, 3, 4, 5, 6, 7, 8, 9].converting a 2D list into a 1D list by un-nesting each list item stored in the list of lists - i.e., converting [[1, 2, 3], [4, 5, 6], [7, 8, 9]] into [1, 2, 3, 4, 5, 6, 7, 8, 9] .