Hướng dẫn can you store lists in lists python? - bạn có thể lưu trữ danh sách trong danh sách python không?

Tôi đã có cùng một vấn đề, để điền vào danh sách trống với số lượng danh sách xác định. Đây là lối thoát của tôi, tôi đã tạo ra một "bảng" 6x6 chứa đầy O, chỉ ngay lập tức:

board = []    
for i in range[6]: # create a list with nested lists
    board.append[[]]
    for n in range[6]:
        board[i].append["O"] # fills nested lists with data

Result:

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]

Đừng sợ danh sách tên. Nó không là gì ngoài một danh sách với các danh sách khác như một yếu tố. Trong hướng dẫn này, chúng tôi sẽ tìm hiểu về các cách khác nhau để tạo một danh sách các danh sách trong Python.

Mục lục

  • Danh sách các danh sách là gì?
  • Sử dụng hàm append [] để tạo danh sách các danh sách trong Python
  • Tạo danh sách các danh sách bằng trình khởi tạo danh sách trong Python
  • Sử dụng danh sách hiểu để tạo danh sách danh sách
  • Sử dụng vòng lặp để tạo danh sách các danh sách trong Python
  • Bớt tư tưởng

Danh sách các danh sách là gì?

Sử dụng hàm append [] để tạo danh sách các danh sách trong Python

Tạo danh sách các danh sách bằng trình khởi tạo danh sách trong Python

Sử dụng danh sách hiểu để tạo danh sách danh sách

[[a,b],[c,d],[e,f]]

Sử dụng vòng lặp để tạo danh sách các danh sách trong Python

Bớt tư tưởng

Sử dụng hàm append [] để tạo danh sách các danh sách trong Python

Tạo danh sách các danh sách bằng trình khởi tạo danh sách trong Python

Sử dụng danh sách hiểu để tạo danh sách danh sách

Input:

# Create 2 independent lists
list_1 = [a,b,c]
list_2 = [d,e,f]

# Create an empty list
list = []

# Create List of lists
list.append[list_1]
list.append[list_2]
print [list]

Output:

[[a,b,c],[d,e,f]]

Tạo danh sách các danh sách bằng trình khởi tạo danh sách trong Python

Sử dụng trình khởi tạo danh sách, chúng tôi coi danh sách là các yếu tố. Chúng tôi tạo một danh sách các danh sách bằng cách truyền danh sách dưới dạng các yếu tố. Đó là cách dễ nhất để tạo một danh sách các danh sách.

Input:

# Create 2 independent lists 
list_1 = [a,b,c] 
list_2 = [d,e,f]

# Create List of lists 
list = [list1, list2]

# Display result
print[list]

Output:

[[a,b,c],[d,e,f]]

Sử dụng danh sách hiểu để tạo danh sách các danh sách & nbsp; trong Python

Danh sách hiểu là một phương pháp ngắn nhưng ngắn để tạo danh sách các danh sách trong Python.

Input:

list_1 = [a,b,c]
list = [l1 for i in range[3]]
print[list]

Output:

[[a,b,c],[a,b,c],[a,b,c]]

Sử dụng vòng lặp để tạo danh sách các danh sách trong Python

Bạn cũng có thể sử dụng vòng lặp for để tạo danh sách các danh sách. Dưới đây là một đoạn mã để hiểu rõ hơn.

Input:

list = []

# Create List of list
for i in range[2]:
    list.append[[]]
    for j in range[3]: 
        list[i].append[j]

print[lst] 

Output:

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
0 bao gồm những suy nghĩ

Closing thoughts

Danh sách các danh sách là một danh sách trong đó mỗi phần tử là một danh sách của chính nó. Danh sách này là một trong 4 loại dữ liệu tích hợp trong Python. Người ta có thể tìm hiểu thêm về các loại dữ liệu Python khác ở đây.

Có một yếu tố nhầm lẫn liên quan đến thuật ngữ Danh sách danh sách của các danh sách trong Python. Tôi đã viết hướng dẫn toàn diện nhất này trong danh sách các danh sách trên thế giới để loại bỏ tất cả những nhầm lẫn đó bởi những người mới bắt đầu trong ngôn ngữ lập trình Python.most comprehensive tutorial on list of lists in the world to remove all those confusions by beginners in the Python programming language.

Hướng dẫn đa phương thức này bao gồm:

  • Mã nguồn để sao chép và dán vào các dự án của riêng bạn. to copy&paste in your own projects.
  • Mã tương tác bạn có thể thực thi trong trình duyệt của mình.you can execute in your browser.
  • Văn bản giải thích cho mỗi đoạn mã. for each code snippet.
  • Video ScreenCapture tôi đã ghi lại để giúp bạn hiểu các khái niệm nhanh hơn. I recorded to help you understand the concepts faster.
  • Đồ họa và các khái niệm minh họa để giúp bạn có được ý tưởng nhanh chóng. to help you get the ideas quickly.
  • Tài liệu tham khảo về đọc thêm và hướng dẫn liên quan.to further reading and related tutorials.

Vì vậy, nếu bạn bị nhầm lẫn bởi các danh sách danh sách, hãy đọc trên mạng và giải quyết sự nhầm lẫn của bạn một lần và mãi mãi!

Những gì một danh sách các danh sách?

Định nghĩa: Danh sách các danh sách trong Python là một đối tượng danh sách trong đó mỗi phần tử danh sách là một danh sách. Tạo một danh sách danh sách trong Python bằng cách sử dụng ký hiệu khung vuông để tạo danh sách lồng nhau

list = []

# Create List of list
for i in range[2]:
    list.append[[]]
    for j in range[3]: 
        list[i].append[j]

print[lst] 
2.: A list of lists in Python is a list object where each list element is a list by itself. Create a list of list in Python by using the square bracket notation to create a nested list
list = []

# Create List of list
for i in range[2]:
    list.append[[]]
    for j in range[3]: 
        list[i].append[j]

print[lst] 
2.

Bạn có muốn phát triển các kỹ năng của một Python Professional toàn diện trong khi được trả tiền trong quá trình này không? Trở thành một freelancer Python và đặt hàng cuốn sách của bạn rời khỏi cuộc đua chuột với Python trên Amazon [Kindle/Print]!well-rounded Python professional—while getting paid in the process? Become a Python freelancer and order your book Leaving the Rat Race with Python on Amazon [Kindle/Print]!

Phân tích bộ nhớ

Điều quan trọng là bạn hiểu rằng một danh sách chỉ là một loạt các tham chiếu đến các vị trí bộ nhớ.

Bằng cách chơi với Code Visualizer, bạn sẽ hiểu sâu hơn về cách Python hoạt động ở cốt lõi của nó:

Chỉ cần nhấp vào nút tiếp theo của người dùng để xem mỗi dòng mã mở ra như thế nào.

Tạo một danh sách các danh sách bằng cách sử dụng ký hiệu khung vuông.

Ví dụ: để tạo một danh sách các danh sách các giá trị số nguyên, hãy sử dụng

list = []

# Create List of list
for i in range[2]:
    list.append[[]]
    for j in range[3]: 
        list[i].append[j]

print[lst] 
3. Mỗi yếu tố danh sách của danh sách bên ngoài là một danh sách lồng nhau.

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
1

Có nhiều cách tiên tiến và lập trình hơn để tạo và khởi tạo danh sách các danh sách trong Python, hãy tự do đọc hướng dẫn chi tiết của chúng tôi trên blog Finxter:

Hướng dẫn liên quan: Tạo và khởi tạo danh sách các danh sách trong PythonRelated Tutorial: Create and Initialize a List of Lists in Python

Chuyển đổi danh sách danh sách thành một danh sách

Giả sử, bạn muốn chuyển đổi một danh sách các danh sách

list = []

# Create List of list
for i in range[2]:
    list.append[[]]
    for j in range[3]: 
        list[i].append[j]

print[lst] 
3 thành một danh sách duy nhất
list = []

# Create List of list
for i in range[2]:
    list.append[[]]
    for j in range[3]: 
        list[i].append[j]

print[lst] 
5. Làm thế nào để đạt được điều này? Có các tùy chọn khác nhau:

  • Danh sách hiểu
    list = []
    
    # Create List of list
    for i in range[2]:
        list.append[[]]
        for j in range[3]: 
            list[i].append[j]
    
    print[lst] 
    6 Giả sử bạn có một danh sách các danh sách
    list = []
    
    # Create List of list
    for i in range[2]:
        list.append[[]]
        for j in range[3]: 
            list[i].append[j]
    
    print[lst] 
    7.
  • Giải nén
    list = []
    
    # Create List of list
    for i in range[2]:
        list.append[[]]
        for j in range[3]: 
            list[i].append[j]
    
    print[lst] 
    8 Giả sử bạn có một danh sách hai danh sách
    list = []
    
    # Create List of list
    for i in range[2]:
        list.append[[]]
        for j in range[3]: 
            list[i].append[j]
    
    print[lst] 
    7.
  • Sử dụng phương thức
    [['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'], 
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O']]
    
    00 của danh sách Python để mở rộng tất cả các danh sách trong danh sách.

Tìm ví dụ về cả ba phương thức trong đoạn mã sau:

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
2

Do tính đơn giản và hiệu quả của nó, phương pháp hiểu danh sách đầu tiên là vượt trội so với hai phương pháp khác.

Chuyển đổi danh sách danh sách thành từ điển

Đối với một số ứng dụng, nó khá hữu ích để chuyển đổi danh sách các danh sách thành từ điển.

  • Cơ sở dữ liệu: Danh sách danh sách là bảng trong đó danh sách bên trong là các hàng cơ sở dữ liệu và bạn muốn gán từng hàng cho một khóa chính trong từ điển mới.: List of list is table where the inner lists are the database rows and you want to assign each row to a primary key in a new dictionary.
  • Bảng tính: Danh sách danh sách là dữ liệu bảng tính hai chiều và bạn muốn gán từng hàng cho một khóa [= tên hàng].: List of list is two-dimensional spreadsheet data and you want to assign each row to a key [=row name].
  • Phân tích dữ liệu: Bạn đã có một ma trận hai chiều [= mảng numpy] mà ban đầu được thể hiện như một danh sách danh sách và bạn muốn có được một từ điển để dễ dàng truy cập dữ liệu.: You’ve got a two-dimensional matrix [=NumPy array] that’s initially represented as a list of list and you want to obtain a dictionary to ease data access.

Có ba cách chính để chuyển đổi danh sách danh sách thành một từ điển trong Python [nguồn]:

  1. Từ điển Hiểu
  2. Biểu thức máy phát
  3. Cho vòng lặp

Hãy cùng đi sâu vào từng người trong số đó.

1. Từ điển Hiểu

Vấn đề: Giả sử, bạn đã có một danh sách các danh sách trong đó mỗi danh sách đại diện cho một người và bao gồm ba giá trị cho tên người, tuổi và màu tóc.: Say, you’ve got a list of lists where each list represents a person and consists of three values for the person’s name, age, and hair color.

Để thuận tiện, bạn muốn tạo một từ điển nơi bạn sử dụng tên một người làm khóa từ điển và người phụ bao gồm tuổi và màu tóc là giá trị từ điển.

Giải pháp: Bạn có thể đạt được điều này bằng cách sử dụng tính năng đẹp [nhưng đáng ngạc nhiên, ít được biết đến] của sự hiểu biết từ điển trong Python.: You can achieve this by using the beautiful [but, surprisingly, little-known] feature of dictionary comprehension in Python.

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
3

Giải thích: Tuyên bố hiểu từ điển bao gồm biểu thức

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
01 gán tên một người tên
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
02 cho danh sách
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
03 của người ở độ tuổi và màu tóc.
: The dictionary comprehension statement consists of the expression
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
01 that assigns a person’s name
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
02 to the list
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
03 of the person’s age and hair color.

Hơn nữa, nó bao gồm bối cảnh

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
04 đã lặp lại trên tất cả các hàng dữ liệu trên mạng.

2. Biểu thức máy phát

Một cách tương tự để đạt được điều tương tự là sử dụng biểu thức máy phát kết hợp với hàm tạo

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
05 để tạo từ điển.

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
4

Đoạn mã này gần như giống hệt với mã được sử dụng trong phần Danh sách hiểu biết. Sự khác biệt duy nhất là bạn sử dụng các bộ dữ liệu thay vì ánh xạ trực tiếp để lấp đầy từ điển.

3. Đối với vòng lặp

Tất nhiên, không cần phải có được sự ưa thích ở đây.

Bạn cũng có thể sử dụng một vòng thông thường cho vòng lặp và xác định từng phần tử từ điển trong một vòng đơn giản cho vòng lặp.

Đây là mã thay thế:

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
5

Một lần nữa, bạn ánh xạ mỗi người tên vào danh sách bao gồm tuổi và màu tóc.

Chuyển đổi danh sách danh sách thành mảng numpy

Làm thế nào để chuyển đổi danh sách danh sách thành mảng numpy?

Vấn đề: Đưa ra một danh sách các danh sách trong Python. Làm thế nào để chuyển đổi nó thành một mảng 2D?: Given a list of lists in Python. How to convert it to a 2D NumPy array?

Ví dụ: Chuyển đổi danh sách danh sách sau đây: Convert the following list of lists

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
6

thành một mảng numpy

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
7

Giải pháp: Sử dụng hàm

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
06 để chuyển đổi danh sách các danh sách thành mảng numpy hai chiều.: Use the
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
06 function to convert a list of lists into a two-dimensional NumPy array.

Đây là mã:

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
8

Cách chuyển đổi danh sách danh sách thành một mảng numpy với số lượng phần tử khác nhau

Vấn đề: Đưa ra một danh sách các danh sách. Các danh sách bên trong có một số lượng các yếu tố khác nhau. Làm thế nào để chuyển đổi chúng thành một mảng numpy?: Given a list of lists. The inner lists have a varying number of elements. How to convert them to a NumPy array?

Ví dụ: giả sử, bạn đã có danh sách danh sách sau:: Say, you’ve got the following list of lists:

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
9

Các cách tiếp cận khác nhau để chuyển đổi danh sách danh sách này thành một mảng numpy là gì?

Giải pháp: Có ba chiến lược khác nhau bạn có thể sử dụng. [nguồn]: There are three different strategies you can use. [source]

[1] Sử dụng hàm
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
07 tiêu chuẩn.

[[a,b],[c,d],[e,f]]
0

Điều này tạo ra một mảng numpy với ba yếu tố Phần tử ARECT là loại danh sách. Bạn có thể kiểm tra loại đầu ra bằng cách sử dụng hàm

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
08 tích hợp:

[[a,b],[c,d],[e,f]]
1

[2] Tạo một mảng mảng.

[[a,b],[c,d],[e,f]]
2

Điều này hợp lý hơn phiên bản trước vì nó tạo ra một mảng numpy gồm các mảng 1D numpy [thay vì danh sách Python 1D].

[3] Làm cho các danh sách có chiều dài bằng nhau.

[[a,b],[c,d],[e,f]]
3

Bạn sử dụng danh sách hiểu được các giá trị pad pad ____ ____109 cho mỗi danh sách bên trong với độ dài tối đa nhỏ hơn.

Đọc thêm: Xem bài viết gốc trên blog này để biết phiên bản chi tiết hơn của nội dung này.: See the original article on this blog for a more detailed version of this content.

Chuyển đổi danh sách danh sách thành DataFrame

Cách chuyển đổi danh sách danh sách thành DataFrame Pandas DataFrame

Vấn đề: Bạn đã đưa ra một danh sách các danh sách. Mục tiêu của bạn là chuyển đổi nó thành một khung dữ liệu gấu trúc.: You’re given a list of lists. Your goal is to convert it into a Pandas Dataframe.

Ví dụ: Giả sử, bạn muốn so sánh dữ liệu tiền lương của các công ty khác nhau và mô tả công việc.: Say, you want to compare salary data of different companies and job descriptions.

Bạn đã nhận được các dữ liệu lương sau đây làm danh sách danh sách lồng nhau:

[[a,b],[c,d],[e,f]]
4

Làm thế nào bạn có thể chuyển đổi điều này thành một khung dữ liệu gấu trúc?

Giải pháp: Giải pháp chuyển tiếp thẳng là sử dụng hàm tạo

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
10 tạo ra một đối tượng DataFrame mới từ các loại đầu vào khác nhau như mảng hoặc danh sách numpy.: The straight-forward solution is to use the
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
10 constructor that creates a new Dataframe object from different input types such as NumPy arrays or lists.

Đây là cách làm cho nó cho ví dụ đã cho:

[[a,b],[c,d],[e,f]]
5

Điều này dẫn đến DataFrame sau:

[[a,b],[c,d],[e,f]]
6

Một giải pháp thay thế là phương thức

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
11 tạo ra cùng một đầu ra:

[[a,b],[c,d],[e,f]]
7

Nếu bạn muốn thêm tên cột để làm cho đầu ra trở nên đẹp hơn, bạn cũng có thể vượt qua những thứ đó như một đối số riêng biệt:

[[a,b],[c,d],[e,f]]
8

Nếu danh sách đầu tiên của danh sách danh sách chứa tên cột, hãy sử dụng cắt lát để tách danh sách đầu tiên khỏi các danh sách khác:

[[a,b],[c,d],[e,f]]
9

Cắt lát là một tính năng Python mạnh mẽ và trước khi bạn có thể làm chủ gấu trúc, bạn cần phải làm chủ thái lát.

Hướng dẫn liên quan:

  • Để làm mới các kỹ năng cắt python của bạn, hãy tải xuống ebook của tôi Break Coffee Break Python cắt lát miễn phí.

Tóm tắt: Để chuyển đổi danh sách các danh sách thành DataFrame của gấu trúc, hãy sử dụng hàm tạo

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
12 và truyền danh sách các danh sách làm đối số. Một đối số cột tùy chọn có thể giúp bạn cấu trúc đầu ra.: To convert a list of lists into a Pandas DataFrame, use the
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
12 constructor and pass the list of lists as an argument. An optional columns argument can help you structure the output.

Bài viết liên quan::

  • Làm thế nào để chuyển đổi một danh sách các danh sách thành một khung dữ liệu Python?

Chuyển đổi danh sách danh sách thành danh sách các bộ dữ

Nếu bạn vội vàng, thì đây là câu trả lời ngắn gọn:

Sử dụng câu lệnh Danh sách hiểu

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
13 để chuyển đổi từng phần tử trong
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
14 của bạn thành một tuple. Điều này cũng hoạt động cho danh sách các danh sách với số lượng các yếu tố khác nhau.

Làm thế nào để chuyển đổi danh sách danh sách thành danh sách các bộ dữ liệu trong Python? [Và quay lại]

Nhưng có nhiều hơn nữa và nghiên cứu hai phương pháp chính để đạt được cùng một mục tiêu sẽ khiến bạn trở thành một lập trình viên tốt hơn. Vì vậy, hãy tiếp tục đọc:

Phương pháp 1: Danh sách hiểu + tuple []

Vấn đề: Làm thế nào để chuyển đổi danh sách các danh sách thành một danh sách các bộ dữ liệu?: How to convert a list of lists into a list of tuples?

Ví dụ: Bạn đã có một danh sách các danh sách

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
15 và bạn muốn chuyển đổi nó thành một danh sách các bộ dữ liệu
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
16.
: You’ve got a list of lists
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
15 and you want to convert it into a list of tuples
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
16.

Giải pháp: Có các giải pháp khác nhau để chuyển đổi danh sách các danh sách thành danh sách các bộ dữ liệu. Sử dụng danh sách hiểu ở dạng cơ bản nhất của nó:: There are different solutions to convert a list of lists to a list of tuples. Use list comprehension in its most basic form:

# Create 2 independent lists
list_1 = [a,b,c]
list_2 = [d,e,f]

# Create an empty list
list = []

# Create List of lists
list.append[list_1]
list.append[list_2]
print [list]
0

Cách tiếp cận này là đơn giản và hiệu quả.

Danh sách hiểu xác định cách chuyển đổi từng giá trị [

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
17 trong ví dụ] thành phần tử danh sách mới. Vì mỗi phần tử danh sách là một tuple mới, bạn sử dụng hàm tạo
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
18 để tạo một tuple mới từ danh sách
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
17.

Nếu bạn có ba yếu tố danh sách cho mỗi người phụ, bạn có thể sử dụng cùng một cách tiếp cận với chuyển đổi:

# Create 2 independent lists
list_1 = [a,b,c]
list_2 = [d,e,f]

# Create an empty list
list = []

# Create List of lists
list.append[list_1]
list.append[list_2]
print [list]
1

Bạn có thể thấy luồng thực thi trong trực quan tương tác sau đây [chỉ cần nhấp vào nút tiếp theo của người dùng để xem những gì xảy ra trong mã]:

Và nếu bạn có một số lượng các yếu tố danh sách khác nhau cho mỗi người phụ, cách tiếp cận này vẫn hoạt động rất đẹp:

# Create 2 independent lists
list_1 = [a,b,c]
list_2 = [d,e,f]

# Create an empty list
list = []

# Create List of lists
list.append[list_1]
list.append[list_2]
print [list]
2

Bạn thấy rằng một cách tiếp cận với sự hiểu biết danh sách là cách tốt nhất để chuyển đổi danh sách các danh sách thành danh sách các bộ dữ liệu. Nhưng có bất kỳ lựa chọn thay thế nào không?

Phương pháp 2: Hàm bản đồ + tuple []

Một giải pháp thay thế là sử dụng chức năng MAP áp dụng một chức năng được chỉ định trên mỗi phần tử của một điều không thể điều chỉnh được.

Guido Van Rossum, người tạo ra Python, đã không thích chức năng

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
20 vì nó không thể đọc được [và kém hiệu quả hơn] so với phiên bản hiểu danh sách. Hãy đọc một cuộc thảo luận chi tiết về cách chính xác anh ấy lập luận trong bài viết trên blog của tôi.

Vì vậy, không có gì khó chịu, ở đây, cách bạn có thể chuyển đổi danh sách các danh sách thành danh sách các bộ dữ liệu bằng hàm

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
20:

# Create 2 independent lists
list_1 = [a,b,c]
list_2 = [d,e,f]

# Create an empty list
list = []

# Create List of lists
list.append[list_1]
list.append[list_2]
print [list]
3

Đối số đầu tiên của hàm

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
20 là tên hàm
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
23.

Hàm

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
24 này chuyển đổi từng phần tử trên
list = []

# Create List of list
for i in range[2]:
    list.append[[]]
    for j in range[3]: 
        list[i].append[j]

print[lst] 
7 [đối số thứ hai] đã cho thành một tuple.

Kết quả của chức năng

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
20 là một điều có thể có được, vì vậy bạn cần chuyển đổi nó thành một danh sách trước khi in nó thành shell vì biểu diễn chuỗi mặc định của một điều không thể đọc được là không thể đọc được.

Những bài viết liên quan

  • Cách chuyển đổi danh sách danh sách thành danh sách các bộ dữ
  • Cách chuyển đổi danh sách các bộ dữ liệu thành danh sách danh sách
  • Cách chuyển đổi danh sách danh sách thành DataFrame Pandas
  • Cách chuyển đổi danh sách danh sách thành một mảng numpy
  • Cách chuyển đổi danh sách danh sách thành từ điển trong Python

Chuyển đổi danh sách danh sách thành tệp CSV

Cách chuyển đổi danh sách danh sách thành tệp CSV trong Python

Vấn đề: Làm thế nào để chuyển đổi danh sách danh sách thành tệp

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
27?: How to convert a list of lists to a
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
27 file?

Ví dụ: Được đưa ra là danh sách danh sách dữ liệu lương cho nhân viên trong một công ty nhất định:: Given is a list of list—for example salary data of employees in a given company:

# Create 2 independent lists
list_1 = [a,b,c]
list_2 = [d,e,f]

# Create an empty list
list = []

# Create List of lists
list.append[list_1]
list.append[list_2]
print [list]
4

Mục tiêu của bạn là viết nội dung của danh sách danh sách vào định dạng tệp giá trị [CSV] được phân tách bằng dấu phẩy.

Trang phục của bạn sẽ trông như thế này:

# Create 2 independent lists
list_1 = [a,b,c]
list_2 = [d,e,f]

# Create an empty list
list = []

# Create List of lists
list.append[list_1]
list.append[list_2]
print [list]
5

Giải pháp: Có bốn cách đơn giản để chuyển đổi danh sách danh sách thành tệp CSV trong Python.There are four simple ways to convert a list of lists to a CSV file in Python.

  1. CSV: Nhập mô -đun
    [['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'], 
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O']]
    
    27 trong Python, tạo đối tượng người viết CSV và ghi danh sách danh sách vào tệp bằng phương thức
    [['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'], 
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O']]
    
    29 trên đối tượng người viết.
    : Import the
    [['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'], 
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O']]
    
    27 module in Python, create a csv writer object, and write the list of lists to the file in using the
    [['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'], 
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O']]
    
    29 method on the writer object.
  2. Pandas: Nhập thư viện gấu trúc, tạo một bản dữ liệu gấu trúc và viết dataFrame vào một tệp bằng phương pháp DataFrame
    [['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'], 
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O']]
    
    30.
    : Import the pandas library, create a Pandas DataFrame, and write the DataFrame to a file using the DataFrame method
    [['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'], 
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O']]
    
    30.
  3. Numpy: Nhập thư viện Numpy, tạo một mảng numpy và ghi đầu ra vào tệp CSV bằng phương thức
    [['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'], 
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O']]
    
    31.
    : Import the NumPy library, create a NumPy array, and write the output to a CSV file using the
    [['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'], 
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O']]
    
    31 method.
  4. Python: Sử dụng triển khai Python thuần túy mà không yêu cầu bất kỳ thư viện nào bằng cách sử dụng chức năng I/O của tệp Python.: Use a pure Python implementation that doesn’t require any library by using the Python file I/O functionality.

Sở thích của tôi là Phương pháp 2 [gấu trúc] bởi vì nó đơn giản nhất để sử dụng và mạnh mẽ nhất cho các loại đầu vào khác nhau [số hoặc văn bản].Pandas] because it’s simplest to use and most robust for different input types [numerical or textual].

Phương pháp 1: Mô -đun CSV Python

Bạn có thể chuyển đổi danh sách các danh sách thành tệp CSV trong Python dễ dàng bằng cách sử dụng thư viện

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
27.

Đây là tùy chỉnh nhất của cả bốn phương pháp.

# Create 2 independent lists
list_1 = [a,b,c]
list_2 = [d,e,f]

# Create an empty list
list = []

# Create List of lists
list.append[list_1]
list.append[list_2]
print [list]
6

Output:

# Create 2 independent lists
list_1 = [a,b,c]
list_2 = [d,e,f]

# Create an empty list
list = []

# Create List of lists
list.append[list_1]
list.append[list_2]
print [list]
5

Trong mã, trước tiên bạn mở tệp bằng lệnh Python Tiêu chuẩn

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
33. Bây giờ, bạn có thể viết nội dung vào đối tượng tệp
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
34.

Tiếp theo, bạn chuyển đối tượng tệp này cho hàm tạo của người viết CSV thực hiện một số phương thức trợ giúp bổ sung và kết thúc hiệu quả đối tượng tệp cung cấp cho bạn chức năng cụ thể CSV mới như phương thức

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
29.

Bây giờ bạn đã chuyển một danh sách các danh sách cho phương thức

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
29 của người viết CSV chăm sóc việc chuyển đổi danh sách danh sách thành định dạng CSV.

Bạn có thể tùy chỉnh người viết CSV trong hàm tạo của nó [ví dụ: bằng cách sửa đổi dấu phân cách từ dấu phẩy

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
37 thành ký tự khoảng trắng
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
38].

Hãy xem các đặc điểm kỹ thuật để tìm hiểu về sửa đổi nâng cao.

Phương pháp 2: Pandas DataFrame to_csv []

Bạn có thể chuyển đổi một danh sách các danh sách thành GANDAS DATAFRAME cung cấp cho bạn các khả năng mạnh mẽ như phương thức

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
39.

Đây là phương pháp dễ nhất và nó cho phép bạn tránh nhập một thư viện khác [tôi sử dụng gấu trúc trong nhiều dự án Python]. [I use Pandas in many Python projects anyways].

# Create 2 independent lists
list_1 = [a,b,c]
list_2 = [d,e,f]

# Create an empty list
list = []

# Create List of lists
list.append[list_1]
list.append[list_2]
print [list]
8

Output:

# Create 2 independent lists
list_1 = [a,b,c]
list_2 = [d,e,f]

# Create an empty list
list = []

# Create List of lists
list.append[list_1]
list.append[list_2]
print [list]
9

Bạn tạo một gấu trúc DataFrame, đó là biểu diễn mặc định của Python, của dữ liệu bảng. Hãy nghĩ về nó như một bảng tính Excel trong mã của bạn [với các hàng và cột].

DataFrame là một cấu trúc dữ liệu rất mạnh mẽ cho phép bạn thực hiện các phương thức khác nhau. Một trong số đó là phương thức

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
39 cho phép bạn viết nội dung của nó vào tệp CSV.

Bạn đặt các đối số

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
41 và
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
42 của phương thức
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
39 thành
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
44 vì gấu trúc, mỗi mặc định, thêm các chỉ số hàng và cột số nguyên 0, 1, 2,.

Một lần nữa, hãy nghĩ về chúng như các chỉ số hàng và cột trong bảng tính Excel của bạn. Bạn không muốn họ xuất hiện trong tệp CSV để bạn đặt các đối số thành

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
44.

Nếu bạn muốn tùy chỉnh đầu ra CSV, bạn đã có rất nhiều đối số đặc biệt để chơi. Kiểm tra bài viết này cho một danh sách toàn diện của tất cả các lập luận.

Bài viết liên quan: Pandas Cheat Sheets để ghim vào tường của bạn: Pandas Cheat Sheets to Pin to Your Wall

Phương pháp 3: Numpy Savetext []

Numpy là cốt lõi của khoa học dữ liệu và chức năng học máy Python. Ngay cả Pandas cũng sử dụng các mảng Numpy để thực hiện chức năng quan trọng.

Bạn có thể chuyển đổi danh sách các danh sách thành tệp CSV bằng cách sử dụng hàm Numpy, ____ ____146 và chuyển mảng Numpy như một đối số phát sinh từ việc chuyển đổi danh sách danh sách.

Phương pháp này là tốt nhất nếu bạn chỉ có dữ liệu số, nếu không, nó sẽ dẫn đến các chuyển đổi kiểu dữ liệu phức tạp không được khuyến nghị.

[[a,b,c],[d,e,f]]
0

Output:

[[a,b,c],[d,e,f]]
1

Đầu ra không trông đẹp: nó lưu trữ các giá trị dưới dạng phao.

Nhưng không phải lo lắng, bạn có thể định dạng lại đầu ra bằng cách sử dụng đối số định dạng

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
47 của phương pháp
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
48 [nhiều hơn ở đây].

Tuy nhiên, tôi đã khuyên bạn nên gắn bó với Phương pháp 2 [gấu trúc] để tránh sự phức tạp không cần thiết trong mã của bạn.

Related:

  • [Nhận sách của bạn] Cà phê phá vỡ Numpy và trở thành một bậc thầy khoa học dữ liệu.

Phương pháp 4: Python thuần túy không có sự phụ thuộc bên ngoài

Nếu bạn không muốn nhập bất kỳ thư viện nào và vẫn chuyển đổi danh sách danh sách thành tệp CSV, bạn cũng có thể sử dụng triển khai Python tiêu chuẩn: nó không phức tạp và hiệu quả.

Tuy nhiên, nếu có thể, bạn nên dựa vào các thư viện thực hiện công việc cho bạn.

Phương pháp này là tốt nhất nếu bạn giành chiến thắng hoặc không thể sử dụng các phụ thuộc bên ngoài.

[[a,b,c],[d,e,f]]
2

Output:

[[a,b,c],[d,e,f]]
3

Trong mã, trước tiên bạn mở đối tượng tệp

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
34. Sau đó, bạn lặp lại trên mỗi hàng và mỗi phần tử trong hàng và ghi phần tử vào tệp một.

Sau mỗi phần tử, bạn đặt dấu phẩy để tạo định dạng tệp CSV. Sau mỗi hàng, bạn đặt ký tự mới

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
50.

Lưu ý: Để loại bỏ dấu phẩy kéo dài, bạn có thể kiểm tra xem phần tử

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
17 có phải là phần tử cuối cùng trong hàng trong thân vòng không và bỏ qua việc viết dấu phẩy nếu có.Note: To get rid of the trailing comma, you can check if the element
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
17 is the last element in the row within the loop body and skip writing the comma if it is.

Hướng dẫn liên quan: Tham gia cộng đồng Finxter và tải xuống hơn 8 tấm cheat Python của bạn để làm mới sự hiểu biết mã của bạn.: Join the Finxter community and download your 8+ Python cheat sheets to refresh your code understanding.

Sắp xếp danh sách danh sách theo khóa

Mỗi nhà khoa học máy tính đều thích phân loại mọi thứ. Trong phần này, tôi sẽ chỉ cho bạn cách bạn có thể sửa đổi hành vi sắp xếp Python mặc định với đối số chính.

Định nghĩa và cách sử dụng: Để tùy chỉnh hành vi sắp xếp mặc định của phương thức

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
52 và
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
53, hãy sử dụng đối số
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
54 tùy chọn bằng cách chuyển một hàm trả về giá trị tương đương cho từng phần tử trong danh sách.
To customize the default sorting behavior of the
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
52 and
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
53 method, use the optional
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
54 argument by passing a function that returns a comparable value for each element in the list.

Python Danh sách sắp xếp [] - Hướng dẫn cuối cùng

Cú pháp: Bạn có thể gọi phương thức này trên mỗi đối tượng danh sách trong Python [phiên bản Python 2.x và 3.x].: You can call this method on each list object in Python [Python versions 2.x and 3.x].

Ở đây, cú pháp:

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
55

Tranh luậnSự mô tả
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
54
[Tùy chọn. Mặc định
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
09.] Truyền một hàm có một đối số duy nhất và trả về một giá trị tương đương. Hàm sau đó được áp dụng cho từng phần tử trong danh sách. Sau đó, phương thức sắp xếp dựa trên kết quả chức năng chính thay vì chính các yếu tố.
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
58
[Tùy chọn. Mặc định
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
44.] Thứ tự của các yếu tố danh sách. Nếu
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
44, việc sắp xếp theo thứ tự tăng dần. Nếu
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
61, thì nó theo thứ tự giảm dần.

Những bài viết liên quan:

  • Phương thức danh sách Python [Tổng quan]
  • Danh sách Python
    [['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'], 
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O']]
    
    62 - Hướng dẫn cuối cùng
  • Danh sách Python - Mọi thứ bạn cần biết để bắt đầu

Phương thức

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
52 lấy một hàm khác làm đối số
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
54 tùy chọn cho phép bạn sửa đổi hành vi sắp xếp mặc định.

Hàm khóa sau đó được gọi trên mỗi phần tử danh sách và trả về một giá trị khác dựa trên đó việc sắp xếp được thực hiện. Do đó, hàm chính có một đối số đầu vào [một phần tử danh sách] và trả về một giá trị đầu ra [một giá trị có thể được so sánh].

Đây là một ví dụ:

[[a,b,c],[d,e,f]]
4

Bạn có thể thấy rằng trong hai ví dụ đầu tiên, danh sách được sắp xếp theo giá trị danh sách bên trong đầu tiên.

Trong ví dụ thứ ba, danh sách được sắp xếp theo giá trị danh sách bên trong thứ hai.

Bạn đạt được điều này bằng cách xác định chức năng chính

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
65 lấy một phần tử danh sách
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
17 [danh sách của chính nó] làm đối số và biến nó thành giá trị tương đương
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
67 [giá trị danh sách thứ hai].

Bài viết liên quan:

  • Giới thiệu về các chức năng Lambda trong Python

Sắp xếp danh sách danh sách theo phần tử đầu tiên

Cả Danh sách

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
62 và chức năng Python tích hợp
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
53 sắp xếp một danh sách danh sách theo yếu tố đầu tiên của họ.

Đây là một ví dụ:

[[a,b,c],[d,e,f]]
5

Bạn có thể thấy rằng trong hai ví dụ đầu tiên, danh sách được sắp xếp theo giá trị danh sách bên trong đầu tiên.

Sắp xếp danh sách danh sách từ vựng

Vấn đề: Đưa ra một danh sách các danh sách. Sắp xếp danh sách các chuỗi theo thứ tự từ vựng!: Given a list of lists. Sort the list of strings in lexicographical order!

Thứ tự từ vựng là sắp xếp theo yếu tố danh sách bên trong đầu tiên. Nếu chúng giống nhau, bạn sắp xếp theo phần tử danh sách bên trong thứ hai, v.v.Lexicographical order is to sort by the first inner list element. If they are the same, you sort by the second inner list element, and so on.

Example:

Chúng tôi muốn sắp xếp danh sách sau trong đó các yếu tố đầu tiên OT Danh sách bên trong giống nhau:

[[a,b,c],[d,e,f]]
6

Giải pháp: Sử dụng phương pháp

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
52 mà không có lập luận để giải quyết danh sách theo thứ tự từ vựng.: Use the
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
52 method without argument to solve the list in lexicographical order.

[[a,b,c],[d,e,f]]
7

Sắp xếp danh sách danh sách theo chiều dài

Vấn đề: Đưa ra một danh sách các danh sách. Làm thế nào bạn có thể sắp xếp chúng theo chiều dài?: Given a list of lists. How can you sort them by length?

Ví dụ: Bạn muốn sắp xếp danh sách danh sách của mình

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
71 theo chiều dài bắt đầu với danh sách ngắn nhất.: You want to sort your list of lists
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
71 by length—starting with the shortest list.

Do đó, kết quả mục tiêu của bạn là

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
72. Làm thế nào để đạt được điều đó?

Giải pháp: Sử dụng hàm

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
73 làm đối số chính của phương thức
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
52 như thế này:
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
75.
: Use the
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
73 function as key argument of the
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
52 method like this:
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
75.

Vì hàm

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
73 là hàm tích hợp Python, bạn không cần nhập hoặc xác định bất cứ thứ gì khác.

Ở đây, giải pháp mã:

[[a,b,c],[d,e,f]]
8

Đầu ra là danh sách được sắp xếp theo độ dài của chuỗi:

[[a,b,c],[d,e,f]]
9

Bạn cũng có thể sử dụng kỹ thuật này để sắp xếp một danh sách các chuỗi theo độ dài.

Danh sách hiểu biết danh sách Python

Danh sách hiểu biết danh sách Python

Bạn sẽ học ba cách làm thế nào để áp dụng danh sách hiểu biết vào danh sách danh sách:

  • đến danh sách danh sách Flattenaflattena list of lists
  • Để tạo danh sách các danh sáchcreate a list of lists
  • Lặp lại trong danh sách các danh sáchiterate over a list of lists

Ngoài ra, bạn sẽ học cách áp dụng khả năng hiểu danh sách lồng nhau. Vậy hãy bắt đầu!

Danh sách Python Danh sách Flatten Danh sách Danh sách

Vấn đề: Đưa ra một danh sách các danh sách. Làm thế nào để làm phẳng danh sách các danh sách bằng cách loại bỏ các danh sách bên trong và giữ các yếu tố của họ?: Given a list of lists. How to flatten the list of lists by getting rid of the inner lists—and keeping their elements?

Ví dụ: Bạn muốn chuyển đổi một danh sách đã cho thành một danh sách phẳng như ở đây:: You want to transform a given list into a flat list like here:

# Create 2 independent lists 
list_1 = [a,b,c] 
list_2 = [d,e,f]

# Create List of lists 
list = [list1, list2]

# Display result
print[list]
0

Giải pháp: Sử dụng một câu lệnh Hiểu danh sách lồng nhau

list = []

# Create List of list
for i in range[2]:
    list.append[[]]
    for j in range[3]: 
        list[i].append[j]

print[lst] 
6 để làm phẳng danh sách.: Use a nested list comprehension statement
list = []

# Create List of list
for i in range[2]:
    list.append[[]]
    for j in range[3]: 
        list[i].append[j]

print[lst] 
6 to flatten the list.

# Create 2 independent lists 
list_1 = [a,b,c] 
list_2 = [d,e,f]

# Create List of lists 
list = [list1, list2]

# Display result
print[list]
1

Giải thích: Trong tuyên bố hiểu danh sách lồng nhau

list = []

# Create List of list
for i in range[2]:
    list.append[[]]
    for j in range[3]: 
        list[i].append[j]

print[lst] 
6, trước tiên bạn lặp lại tất cả các danh sách trong danh sách danh sách [
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
79].
: In the nested list comprehension statement
list = []

# Create List of list
for i in range[2]:
    list.append[[]]
    for j in range[3]: 
        list[i].append[j]

print[lst] 
6, you first iterate over all lists in the list of lists [
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
79].

Sau đó, bạn lặp lại tất cả các yếu tố trong danh sách hiện tại [

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
80]. Yếu tố này, bạn chỉ cần đặt trong danh sách bên ngoài, không thay đổi, bằng cách sử dụng nó trong phần biểu thức của Google, một phần của câu lệnh danh sách hiểu
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
81.

Danh sách Python Hiểu danh sách danh sách

Vấn đề: Làm thế nào để tạo một danh sách các danh sách bằng cách sửa đổi từng yếu tố của một danh sách ban đầu danh sách?: How to create a list of lists by modifying each element of an original list of lists?

Ví dụ: Bạn đã đưa ra danh sách: You’re given the list

# Create 2 independent lists 
list_1 = [a,b,c] 
list_2 = [d,e,f]

# Create List of lists 
list = [list1, list2]

# Display result
print[list]
2

Bạn muốn thêm một vào mỗi phần tử và tạo một danh sách danh sách mới:

# Create 2 independent lists 
list_1 = [a,b,c] 
list_2 = [d,e,f]

# Create List of lists 
list = [list1, list2]

# Display result
print[list]
3

Giải pháp: Sử dụng hai câu lệnh hiểu danh sách lồng nhau, một để tạo danh sách bên ngoài danh sách và một để tạo danh sách bên trong.: Use two nested list comprehension statements, one to create the outer list of lists, and one to create the inner lists.

# Create 2 independent lists 
list_1 = [a,b,c] 
list_2 = [d,e,f]

# Create List of lists 
list = [list1, list2]

# Display result
print[list]
4

Giải thích: Ý tưởng chính là sử dụng như là biểu thức của người Viking của câu lệnh hiểu danh sách bên ngoài một câu lệnh hiểu danh sách.: The main idea is to use as “expression” of the outer list comprehension statement a list comprehension statement by itself.

Hãy nhớ rằng, bạn có thể tạo bất kỳ đối tượng nào bạn muốn trong phần biểu thức của câu lệnh Danh sách hiểu. Đọc thêm tại đây.

In danh sách danh sách không có dấu ngoặc

Vấn đề: Đưa ra một danh sách các danh sách, in nó một hàng trên mỗi dòng mà không có dấu ngoặc.: Given a list of lists, print it one row per line—without brackets.

Ví dụ: Xem xét danh sách ví dụ sau:: Consider the following example list:

# Create 2 independent lists 
list_1 = [a,b,c] 
list_2 = [d,e,f]

# Create List of lists 
list = [list1, list2]

# Display result
print[list]
5

Bạn muốn in danh sách các danh sách với ký tự mới sau mỗi danh sách bên trong:

# Create 2 independent lists 
list_1 = [a,b,c] 
list_2 = [d,e,f]

# Create List of lists 
list = [list1, list2]

# Display result
print[list]
6

Giải pháp: Sử dụng một vòng lặp và câu lệnh

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
82 đơn giản trong đó bạn giải nén tất cả các yếu tố danh sách bên trong bằng toán tử Asterisk.: Use a for loop and a simple
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
82 statement in which you unpack all inner list elements using the asterisk operator.

Đây là một ví dụ ::

# Create 2 independent lists 
list_1 = [a,b,c] 
list_2 = [d,e,f]

# Create List of lists 
list = [list1, list2]

# Display result
print[list]
7

Đầu ra có dạng mong muốn:

# Create 2 independent lists 
list_1 = [a,b,c] 
list_2 = [d,e,f]

# Create List of lists 
list = [list1, list2]

# Display result
print[list]
6

Giải thích: Nhà điều hành Asterisk, giải nén tất cả các giá trị trong danh sách bên trong

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
17 vào câu lệnh in.: The asterisk operator “unpacks” all values in the inner list
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
17 into the print statement.

Bạn phải biết rằng câu lệnh in cũng có nhiều đầu vào và in chúng, được phân tách bằng khoảng trắng, vào vỏ.

Những bài viết liên quan::

  • Giải nén toán tử *
  • Cách in một danh sách đẹp mắt
  • Danh sách danh sách Python
  • In một danh sách các danh sách

In danh sách danh sách với các cột Newline & Align

Vấn đề: Làm thế nào để in một danh sách các danh sách với một dòng mới sau mỗi danh sách để các cột được căn chỉnh?: How to print a list of lists with a new line after each list so that the columns are aligned?

Ví dụ: Giả sử, bạn sẽ in danh sách danh sách.: Say, you’re going to print the list of lists.

# Create 2 independent lists 
list_1 = [a,b,c] 
list_2 = [d,e,f]

# Create List of lists 
list = [list1, list2]

# Display result
print[list]
9

Làm thế nào để căn chỉnh các cột?

[[a,b,c],[d,e,f]]
0

Giải pháp: Sử dụng đoạn mã sau để in danh sách các danh sách và sắp xếp tất cả các cột [bất kể có bao nhiêu ký tự mỗi chuỗi trong danh sách các danh sách chiếm giữ].: Use the following code snippet to print the list of lists and align all columns [no matter how many characters each string in the list of lists occupies].

[[a,b,c],[d,e,f]]
1

Đầu ra là mong muốn:

[[a,b,c],[d,e,f]]
2

Explanation:

  • Đầu tiên, bạn xác định độ dài
    [['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'], 
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O']]
    
    84 [tính theo ký tự] của chuỗi lớn nhất trong danh sách danh sách bằng cách sử dụng câu lệnh
    [['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'], 
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O']]
    
    85. Mã sử ​​dụng một vòng lặp được lồng trong một biểu thức máy phát để đạt được điều này.
  • Thứ hai, bạn lặp lại từng danh sách trong danh sách danh sách [được gọi là
    [['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'], 
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O']]
    
    86].
  • Thứ ba, bạn tạo một biểu diễn chuỗi với các cột được căn chỉnh bởi ‘Padding, mỗi phần tử hàng để nó chiếm
    [['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'], 
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O']]
    
    87 ký tự của không gian. Các nhân vật còn thiếu được lấp đầy với khoảng trống.

Bạn có thể thấy mã hoạt động trong bộ nhớ trực quan sau. Chỉ cần nhấp vào tiếp theo để xem đối tượng nào được tạo trong bộ nhớ nếu bạn chạy mã trong Python:

Các bài viết liên quan: Bạn có thể cần làm mới sự hiểu biết của mình về các tính năng python sau đây được sử dụng trong mã:: You may need to refresh your understanding of the following Python features used in the code:

  • Liệt kê các biểu thức hiểu và tạo ra
  • Chuỗi tham gia []
  • Danh sách in

Danh sách danh sách Python được liệt kê

Giả sử, bạn đã đưa ra mã sau sử dụng chức năng liệt kê trong danh sách các danh sách:

[[a,b,c],[d,e,f]]
3

Đầu ra là:

[[a,b,c],[d,e,f]]
4

Hàm

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
88 tạo ra một trình lặp của các cặp [chỉ mục, phần tử] cho tất cả các phần tử trong một danh sách nhất định.

Nếu bạn có một danh sách các danh sách, các yếu tố danh sách là danh sách.

Vì vậy, hàm

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
89 tạo ra các cặp [chỉ mục, danh sách]. Ví dụ, bạn có thể sử dụng chúng trong phần thân vòng lặp, để in chiều dài của các yếu tố danh sách thứ i.

Xóa trống - Danh sách danh sách Python

Làm thế nào bạn có thể xóa tất cả các danh sách trống khỏi danh sách danh sách?

Giả sử, bạn đã có một danh sách các danh sách

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
90 và bạn muốn tất cả các danh sách trống bị xóa để có được danh sách các danh sách
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
91.

Giải pháp: Sử dụng danh sách hiểu

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
92 để lọc danh sách và xóa tất cả các danh sách trống.: Use list comprehension
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
92 to filter the list and remove all lists that are empty.

[[a,b,c],[d,e,f]]
5

Điều kiện nếu

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
17 đánh giá thành
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
44 chỉ khi danh sách
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
17 trống. Trong tất cả các trường hợp khác, nó đánh giá thành
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
61 và phần tử được bao gồm trong danh sách mới.

Xóa các bản sao - Danh sách Python

Làm thế nào để xóa các bản sao khỏi danh sách python?

Điều gì là cách tốt nhất để loại bỏ các bản sao khỏi danh sách danh sách Python?

Đây là một câu hỏi phỏng vấn mã hóa phổ biến tại Google, Facebook và Amazon. Sau đây, tôi sẽ chỉ cho bạn cách [và tại sao] nó hoạt động vì vậy hãy tiếp tục đọc!

Phương pháp 1: Phương pháp ngây thơ

Thuật toán::

  • Đi qua từng yếu tố và kiểm tra xem phần tử này đã tồn tại trong danh sách.
  • Nếu vậy, loại bỏ nó.

Vấn đề là phương pháp này có độ phức tạp về thời gian bậc hai vì bạn cần kiểm tra từng phần tử nếu nó tồn tại trong danh sách [đó là

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
97 cho các phần tử
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
84].

[[a,b,c],[d,e,f]]
6

Phương pháp 2: Chuyển đổi từ điển tạm thời

Thuật toán: Một cách hiệu quả hơn về độ phức tạp về thời gian là tạo ra một từ điển ra khỏi các yếu tố trong danh sách để loại bỏ tất cả các bản sao và chuyển đổi từ điển trở lại danh sách.A more efficient way in terms of time complexity is to create a dictionary out of the elements in the list to remove all duplicates and convert the dictionary back to a list.

Điều này bảo tồn thứ tự của các yếu tố danh sách ban đầu.

[[a,b,c],[d,e,f]]
7

Tất cả bốn phương pháp phụ sau đây là các hoạt động chạy tuyến tính.

Do đó, thuật toán có độ phức tạp thời gian chạy tuyến tính và hiệu quả hơn so với phương pháp ngây thơ [Phương pháp 1].

  1. Chuyển đổi thành một danh sách các bộ dữ liệu bằng cách sử dụng danh sách hiểu
    [['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'], 
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O']]
    
    99. Tuples có thể băm và có thể được sử dụng làm khóa từ điển trong khi danh sách không thể!
  2. Chuyển đổi danh sách các bộ dữ liệu thành một từ điển với
    [[a,b],[c,d],[e,f]]
    00 để ánh xạ các bộ dữ liệu thành các giá trị giả. Mỗi khóa từ điển chỉ có thể tồn tại một lần để các bản sao được loại bỏ tại thời điểm này.
  3. Chuyển đổi từ điển thành một danh sách các bộ dữ liệu với
    [[a,b],[c,d],[e,f]]
    01.
  4. Chuyển đổi danh sách các bộ dữ liệu thành một danh sách các danh sách bằng cách sử dụng danh sách hiểu
    [[a,b],[c,d],[e,f]]
    02.

Mỗi phần tử danh sách [= một danh sách] trở thành một bộ tuple trở thành khóa mới cho từ điển.

Ví dụ: danh sách

[[a,b],[c,d],[e,f]]
03 trở thành danh sách
[[a,b],[c,d],[e,f]]
04 Từ điển ________ 205: Không}.

Tất cả các yếu tố xảy ra nhiều lần sẽ được gán cho cùng một khóa. Do đó, từ điển chỉ chứa các khóa duy nhất, không thể có nhiều khóa bằng nhau.

Là giá trị từ điển, bạn lấy các giá trị giả [theo mặc định].

Sau đó, bạn chuyển đổi từ điển trở lại danh sách các danh sách, vứt bỏ các giá trị giả.

Từ điển Python có bảo tồn thứ tự của các phím không?

Đáng ngạc nhiên, các phím từ điển trong Python bảo tồn thứ tự của các yếu tố. Vì vậy, vâng, thứ tự của các yếu tố được bảo tồn. [nguồn]

Điều này là đáng ngạc nhiên đối với nhiều độc giả vì vô số tài nguyên trực tuyến như thế này cho rằng thứ tự của các khóa từ điển không được bảo tồn.

Họ giả định rằng việc triển khai cơ bản của khóa từ điển sử dụng các tập hợp các bộ và các bộ được biết đến là bất khả tri đối với thứ tự của các yếu tố.

Nhưng giả định này là sai. Việc triển khai từ điển Python tích hợp trong CPython bảo tồn đơn đặt hàng.

Dưới đây, một ví dụ, hãy thoải mái tạo các ví dụ và bài kiểm tra của riêng bạn để kiểm tra xem đặt hàng có được bảo tồn không.

[[a,b,c],[d,e,f]]
8

Bạn thấy rằng thứ tự của các phần tử được bảo tồn vì vậy khi chuyển đổi nó trở lại, thứ tự ban đầu của các yếu tố danh sách vẫn được bảo tồn:

[[a,b,c],[d,e,f]]
9

Tuy nhiên, bạn không thể dựa vào nó bởi vì bất kỳ việc thực hiện Python nào cũng có thể, về mặt lý thuyết, quyết định không bảo tồn đơn đặt hàng [thông báo về việc có thể có thể ở đây là 100% lý thuyết và không áp dụng cho việc thực hiện CPython mặc định].

Nếu bạn cần chắc chắn rằng đơn đặt hàng được bảo tồn, bạn có thể sử dụng thư viện từ điển được đặt hàng. Trong Cpython, đây chỉ là một trình bao bọc cho việc thực hiện Dict mặc định.

Phương pháp 3: Đặt chuyển đổi

Đưa ra một danh sách các danh sách, mục tiêu là loại bỏ tất cả các yếu tố tồn tại nhiều lần trong danh sách.

Đặt trong Python chỉ cho phép một trường hợp duy nhất của một phần tử. Vì vậy, bằng cách chuyển đổi danh sách thành một tập hợp, tất cả các bản sao được xóa.

Trái ngược với cách tiếp cận ngây thơ [kiểm tra tất cả các cặp phần tử nếu chúng là bản sao] có độ phức tạp về thời gian bậc hai, phương pháp này có độ phức tạp thời gian chạy tuyến tính.

Tại sao?

Bởi vì độ phức tạp thời gian chạy của việc tạo một tập hợp là tuyến tính trong số lượng các phần tử đã đặt. Bây giờ, bạn chuyển đổi bộ trở lại một danh sách và voilà, các bản sao được xóa.

list_1 = [a,b,c]
list = [l1 for i in range[3]]
print[list]
0

Tuy nhiên, việc chuyển đổi một danh sách thành một bộ không đảm bảo để bảo tồn thứ tự của các yếu tố danh sách. Các bộ mất tất cả thông tin đặt hàng.

Ngoài ra, bạn không thể tạo một bộ danh sách vì danh sách là các loại dữ liệu không thể đánh bại:

list_1 = [a,b,c]
list = [l1 for i in range[3]]
print[list]
1

Nhưng chúng ta có thể tìm thấy một cách giải quyết đơn giản cho cả hai vấn đề như bạn sẽ thấy trong phương pháp sau.

Phương pháp RUNTIME tuyến tính với Set để loại bỏ các bản sao khỏi danh sách danh sách

Cách tiếp cận thứ ba này sử dụng một tập hợp để kiểm tra xem phần tử đã có trong danh sách không trùng lặp.

Vì việc kiểm tra tư cách thành viên trên các bộ nhanh hơn nhiều so với việc kiểm tra tư cách thành viên trong danh sách, phương pháp này cũng có độ phức tạp thời gian chạy tuyến tính [tư cách thành viên có độ phức tạp thời gian chạy không đổi].

list_1 = [a,b,c]
list = [l1 for i in range[3]]
print[list]
2

Cách tiếp cận này để loại bỏ các bản sao khỏi danh sách trong khi duy trì thứ tự của các yếu tố cũng có độ phức tạp thời gian chạy tuyến tính.

Và nó hoạt động cho tất cả các ngôn ngữ lập trình mà không cần bạn biết chi tiết thực hiện về từ điển trong Python. Nhưng, mặt khác, nó phức tạp hơn một chút.

Những bài viết liên quan:

  • Làm thế nào để xóa các bản sao khỏi danh sách các danh sách trong Python?
  • Danh sách Python loại bỏ
  • Hướng dẫn cuối cùng về từ điển Python!
  • Xóa các bản sao khỏi danh sách Python
  • Danh sách danh sách Python

Đảo ngược - Danh sách Python

[[a,b],[c,d],[e,f]]
06 đảo ngược thứ tự của các yếu tố trong
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
14. Nếu bạn muốn tạo một danh sách mới với các yếu tố đảo ngược, hãy sử dụng cắt với kích thước bước âm
[[a,b],[c,d],[e,f]]
08.

Đây là một ví dụ ngắn:

list_1 = [a,b,c]
list = [l1 for i in range[3]]
print[list]
3

Trong dòng đầu tiên của ví dụ, bạn tạo danh sách

list = []

# Create List of list
for i in range[2]:
    list.append[[]]
    for j in range[3]: 
        list[i].append[j]

print[lst] 
7. Sau đó, bạn đảo ngược thứ tự của các yếu tố trong danh sách và in nó vào vỏ.

Đảo ngược phẳng

Nhưng nếu bạn sử dụng phương thức

[[a,b],[c,d],[e,f]]
06 trong danh sách các danh sách, bạn chỉ có được một mặt phẳng đảo ngược, chỉ có danh sách bên ngoài được đảo ngược nhưng không phải là danh sách bên trong.

list_1 = [a,b,c]
list = [l1 for i in range[3]]
print[list]
4

Vì vậy, thứ tự của hai danh sách bên trong hiện được đảo ngược nhưng không phải là thứ tự các yếu tố danh sách của họ.

Đảo ngược sâu

Điều gì sẽ xảy ra nếu bạn không chỉ muốn đảo ngược một danh sách mà chạy ngược lại, nơi tất cả các danh sách lồng nhau cũng bị đảo ngược theo cách đệ quy?

Đây là cách bạn có thể làm điều đó:

list_1 = [a,b,c]
list = [l1 for i in range[3]]
print[list]
5

Không chỉ danh sách cấp đầu tiên được đảo ngược mà còn là danh sách cấp hai. Mã được truyền cảm hứng một cách lỏng lẻo từ bài viết này.

Danh sách danh sách Zip Python

Hàm

[[a,b],[c,d],[e,f]]
11 lấy một số lần lặp và tổng hợp chúng thành một đơn lẻ bằng cách kết hợp các giá trị thứ i của mỗi lần lặp lại thành một tuple.

Ví dụ: ZIP cùng nhau liệt kê

[[a,b],[c,d],[e,f]]
12 và
[[a,b],[c,d],[e,f]]
13 đến
[[a,b],[c,d],[e,f]]
14.

Vấn đề: Chuyển danh sách các danh sách vào hàm zip không hoạt động vì hàm zip yêu cầu một số lần lặp tùy ý [và không lặp lại của Iterables].: Passing a list of lists into the zip function doesn’t work because the zip function requires an arbitrary number of iterables [and not iterables of iterables].

Ví dụ: Giả sử, bạn muốn zip một danh sách danh sách:: Say, you want to zip a list of lists:

list_1 = [a,b,c]
list = [l1 for i in range[3]]
print[list]
6

Chú ý: Mã này không hoàn thành điều này!ATTENTION: THIS CODE DOESN’T ACCOMPLISH THIS!

Giải pháp: Giải nén các danh sách trong danh sách các danh sách bằng cách sử dụng nhà điều hành Asterisk isterisk

[[a,b],[c,d],[e,f]]
15.: Unpack the lists in the list of lists using the “unpacking” asterisk operator
[[a,b],[c,d],[e,f]]
15.

list_1 = [a,b,c]
list = [l1 for i in range[3]]
print[list]
7

Hãy nghĩ về nó theo cách này: toán tử Asterisk sẽ loại bỏ khung bên ngoài của Danh sách và chuyển tất cả các danh sách bên trong làm đối số.

Lưu ý rằng bạn cũng chuyển đổi đối tượng ZIP được trả về bởi hàm ZIP thành danh sách bằng Trình xây dựng

[[a,b],[c,d],[e,f]]
01.

Giải nén danh sách Python

Bạn đã thấy một ví dụ về việc giải nén danh sách các danh sách trong phần trước [hàm

[[a,b],[c,d],[e,f]]
17]:

list_1 = [a,b,c]
list = [l1 for i in range[3]]
print[list]
7

Hàm

[[a,b],[c,d],[e,f]]
17 mong đợi một số lần lặp nhưng một danh sách các danh sách chỉ là một điều duy nhất.

Để giải quyết vấn đề này, bạn giải nén các danh sách bên trong vào hàm zip để sử dụng chúng làm đối số cho các phép lặp. Bằng cách này,

[[a,b],[c,d],[e,f]]
11 chạy với ba đối số có thể lặp lại:
[[a,b],[c,d],[e,f]]
20,
[[a,b],[c,d],[e,f]]
21 và
[[a,b],[c,d],[e,f]]
22.

Bài viết liên quan: Nhà điều hành giải nén [Asterisk] The Unpacking Operator [Asterisk]

Trung bình - Danh sách danh sách Python

Làm thế nào để trung bình một danh sách các danh sách trong Python?

Vấn đề: Bạn có một danh sách các danh sách và bạn muốn tính trung bình của các cột khác nhau.: You have a list of lists and you want to calculate the average of the different columns.

Ví dụ: Đưa ra danh sách các danh sách sau đây với bốn hàng và ba cột.: Given the following list of lists with four rows and three columns.

list_1 = [a,b,c]
list = [l1 for i in range[3]]
print[list]
9

Bạn muốn có các giá trị trung bình của ba cột:

[[a,b,c],[a,b,c],[a,b,c]]
0

Phương pháp 1: Trung bình trong Python [không có thư viện]

Một lớp một đơn giản với sự hiểu biết danh sách kết hợp với chức năng

[[a,b],[c,d],[e,f]]
11 trong danh sách chưa đóng gói để chuyển đổi danh sách danh sách thực hiện công việc trong Python.

[[a,b,c],[a,b,c],[a,b,c]]
1

Bạn có yêu Python One-Liners? Tôi chắc chắn rằng tôi đã viết cả một cuốn sách về nó với nhà xuất bản San Francisco Nostarch. Bấm để chọn cuốn sách trong một tab mới:

Bạn có thể trực quan hóa việc thực thi mã và đối tượng bộ nhớ của mã này trong công cụ sau [chỉ cần nhấp vào tiếp theo để xem một bước của mã mở ra].

Phương pháp 2: Trung bình với thư viện Numpy

Bạn tạo một mảng numpy ra khỏi dữ liệu và chuyển nó đến hàm

[[a,b],[c,d],[e,f]]
24.

[[a,b,c],[a,b,c],[a,b,c]]
2

Đối số

[[a,b],[c,d],[e,f]]
25 của hàm trung bình xác định cùng với trục bạn muốn tính giá trị trung bình.

  • Nếu bạn muốn các cột trung bình, hãy xác định
    [[a,b],[c,d],[e,f]]
    26.
  • Nếu bạn muốn các hàng trung bình, hãy xác định
    [[a,b],[c,d],[e,f]]
    27.
  • Nếu bạn muốn trung bình trên tất cả các giá trị, hãy bỏ qua đối số này.

Phương pháp 3: Thư viện thống kê trung bình + Bản đồ []

Chỉ để cho bạn thấy một giải pháp khác, ở đây, một người sử dụng chức năng

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
20 và thủ thuật
[[a,b],[c,d],[e,f]]
29 của chúng tôi để chuyển đổi ma trận trên mạng
[[a,b],[c,d],[e,f]]
30.

[[a,b,c],[a,b,c],[a,b,c]]
3

Hàm

[[a,b],[c,d],[e,f]]
31 áp dụng
[[a,b],[c,d],[e,f]]
32 cho mỗi phần tử trong
[[a,b],[c,d],[e,f]]
33.

Thay vào đó, bạn cũng có thể sử dụng danh sách hiểu như trong Phương pháp 1 trong hướng dẫn này.

Trên thực tế, Guido Van Rossum, người tạo ra Python và Python, nhà độc tài nhân từ cho cuộc sống [BDFL], thích danh sách hiểu biết về hàm

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
20.

Danh sách tổng hợp python

Làm thế nào để tổng hợp danh sách danh sách trong Python? [Hàng + cột]

Vấn đề: Đưa ra một danh sách các danh sách đại diện cho một ma trận dữ liệu với n hàng và cột m. Làm thế nào để tổng hợp các cột của ma trận này?: Given a list of lists representing a data matrix with n rows and m columns. How to sum over the columns of this matrix?

Sau đây, bạn sẽ học được những cách khác nhau để thực hiện điều này trong Python.

Hãy để đảm bảo rằng bạn có thể trên cùng một trang. Tại đây, một đại diện đồ họa của danh sách danh sách và những gì bạn muốn đạt được:

Ví dụ: Cho mã sau.: Given the following code.

[[a,b,c],[a,b,c],[a,b,c]]
4

Tiếp theo, bạn sẽ học ba phương pháp khác nhau để tổng hợp các cột.

Những bài viết liên quan:

  • Làm thế nào để trung bình trong một danh sách các danh sách trong Python?

Bản sao phẳng - Danh sách danh sách Python

Trước khi bạn thực sự có thể hiểu phương pháp

[[a,b],[c,d],[e,f]]
35 trong Python, bạn phải hiểu khái niệm về một bản sao nông cạn của người Hồi giáo hoặc bản sao phẳng.

Trong các ngôn ngữ hướng đối tượng như Python, mọi thứ đều là một đối tượng. Danh sách là một đối tượng và các yếu tố trong danh sách cũng là các đối tượng.

Một bản sao nông của danh sách tạo ra một đối tượng danh sách mới, bản sao, nhưng nó không tạo ra các yếu tố danh sách mới mà chỉ đơn giản là sao chép các tham chiếu đến các đối tượng này.

Bạn có thể thấy rằng danh sách dưới đây chỉ là một bản sao nông trỏ đến các yếu tố giống như danh sách ban đầu.

Trong Python, phương pháp

[[a,b],[c,d],[e,f]]
36 chỉ tạo ra một bản sao nông có độ phức tạp thời gian chạy nhanh hơn nhiều.

Ở đây, một ví dụ cho thấy chính xác kịch bản này:

[[a,b,c],[a,b,c],[a,b,c]]
5

Thay đổi phần tử danh sách thứ ba của danh sách sao chép tác động đến phần tử danh sách thứ ba của danh sách ban đầu.

Do đó, đầu ra là:

[[a,b,c],[a,b,c],[a,b,c]]
6

Bạn có thể thấy một trực quan thực thi trực tiếp trong công cụ tuyệt vời sau đây để trực quan hóa việc sử dụng bộ nhớ của đoạn python này ở mọi giai đoạn thực thi. Chỉ cần nhấp vào tiếp theo để xem bộ nhớ mở ra như thế nào:

Gợi ý: Nếu bạn sao chép danh sách danh sách bằng phương thức

[[a,b],[c,d],[e,f]]
36, hãy lưu ý rằng mọi thay đổi mà bạn đang thực hiện trong danh sách trong danh sách danh sách được sao chép có thể hiển thị trong danh sách ban đầu.: If you copy a list of lists using the
[[a,b],[c,d],[e,f]]
36 method, be aware that any change you’re performing on a list in the copied list of lists is visible in the original list.

Nếu bạn không ổn với điều đó, hãy xem phần sau về các bản sao sâu của danh sách Python:

Bản sao sâu - Danh sách danh sách Python

Đã hiểu khái niệm về một bản sao nông cạn, giờ đây nó dễ hiểu khái niệm về một bản sao sâu

Đọc bài viết của tôi Deep vs Sao chép nông để có được sự hiểu biết sâu sắc hơn.

  • Một bản sao nông chỉ sao chép các tài liệu tham khảo của các yếu tố danh sách.
  • Một bản sao sâu sao chép các yếu tố danh sách có thể dẫn đến một hành vi đệ quy cao bởi vì các yếu tố danh sách có thể là danh sách cần phải được sao chép sâu sắc.

Dưới đây, một bản sao sâu đơn giản của cùng một danh sách như được hiển thị trước đây:

Trái ngược với bản sao nông, danh sách

[[a,b],[c,d],[e,f]]
20 được sao chép riêng cho danh sách sao chép sâu. Nếu một người thay đổi danh sách lồng nhau này trong danh sách ban đầu, thay đổi sẽ không hiển thị ở bản sao sâu. [Bởi vì danh sách lồng nhau của danh sách sao chép sâu là một đối tượng độc lập trong bộ nhớ.]

Lưu ý rằng trong một bản sao sâu, đối tượng chuỗi không được sao chép. Tại sao? Bởi vì các chuỗi là bất biến nên bạn không thể thay đổi chúng [và do đó, sẽ không có tác dụng phụ bẩn nào được nhìn thấy bởi các bản sao khác của danh sách chỉ vào cùng một đối tượng trong bộ nhớ].

Để có được bản sao sâu trong Python, hãy nhập mô -đun

[[a,b],[c,d],[e,f]]
39 và sử dụng phương thức
[[a,b],[c,d],[e,f]]
40:

[[a,b,c],[a,b,c],[a,b,c]]
7

Một lần nữa, trực quan hóa luồng thực thi của đoạn mã sau đây ngay tại đây trong trình duyệt của bạn bằng cách nhấp vào tiếp theo tiếp theo:

Những bài viết liên quan:

  • Giới thiệu về cắt lát trong Python
  • Sao chép Danh sách Python [Hướng dẫn đầy đủ]
  • Phương pháp danh sách bảng gian lận
  • Hướng dẫn danh sách

Làm thế nào để lọc một danh sách python?

Câu trả lời ngắn gọn: Để lọc danh sách các danh sách cho một điều kiện trong danh sách bên trong, hãy sử dụng câu lệnh Danh sách hiểu

[[a,b],[c,d],[e,f]]
41 và thay thế
[[a,b],[c,d],[e,f]]
42 bằng điều kiện lọc của bạn trả về
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
61 để bao gồm danh sách bên trong
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
17 và
[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
44 nếu không.

Làm thế nào để lọc một danh sách trong Python?

Danh sách thuộc về các cấu trúc dữ liệu quan trọng nhất trong Python, tất cả các lập trình viên chính đều biết chúng bằng trái tim! Đáng ngạc nhiên, ngay cả các lập trình viên trung gian cũng không biết cách tốt nhất để lọc một danh sách, hãy để một mình danh sách các danh sách trong Python. Hướng dẫn này chỉ cho bạn cách làm sau!

Vấn đề: Giả sử, bạn đã có một danh sách các danh sách. Bạn muốn lọc danh sách các danh sách để chỉ những danh sách bên trong vẫn thỏa mãn một điều kiện nhất định. Điều kiện này là một hàm của danh sách bên trong như trung bình hoặc tổng của các yếu tố danh sách bên trong.: Say, you’ve got a list of lists. You want to filter the list of lists so that only those inner lists remain that satisfy a certain condition. The condition is a function of the inner list—such as the average or sum of the inner list elements.

Ví dụ: Đưa ra danh sách các danh sách sau đây với các phép đo nhiệt độ hàng tuần mỗi tuần và một danh sách bên trong mỗi tuần.: Given the following list of lists with weekly temperature measurements per week—and one inner list per week.

[[a,b,c],[a,b,c],[a,b,c]]
8

Cách lọc ra những tuần lạnh hơn với giá trị nhiệt độ trung bình

[[a,b,c],[a,b,c],[a,b,c]]
9

Có hai phương pháp tương đương về mặt ngữ nghĩa để đạt được điều này: danh sách hiểu và hàm

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
20. Hãy cùng khám phá cả hai biến thể tiếp theo:

list = []

# Create List of list
for i in range[2]:
    list.append[[]]
    for j in range[3]: 
        list[i].append[j]

print[lst] 
0

Những bài viết liên quan:

  • Làm thế nào để lọc một danh sách python?
  • Câu trả lời ngắn gọn: Để lọc danh sách các danh sách cho một điều kiện trong danh sách bên trong, hãy sử dụng câu lệnh Danh sách hiểu
    [[a,b],[c,d],[e,f]]
    41 và thay thế
    [[a,b],[c,d],[e,f]]
    42 bằng điều kiện lọc của bạn trả về
    [['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'], 
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O']]
    
    61 để bao gồm danh sách bên trong
    [['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'], 
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O']]
    
    17 và
    [['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'], 
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O'],
     ['O', 'O', 'O', 'O', 'O', 'O']]
    
    44 nếu không.
  • Làm thế nào để lọc một danh sách trong Python?
  • Danh sách thuộc về các cấu trúc dữ liệu quan trọng nhất trong Python, tất cả các lập trình viên chính đều biết chúng bằng trái tim! Đáng ngạc nhiên, ngay cả các lập trình viên trung gian cũng không biết cách tốt nhất để lọc một danh sách, hãy để một mình danh sách các danh sách trong Python. Hướng dẫn này chỉ cho bạn cách làm sau!
  • Vấn đề: Giả sử, bạn đã có một danh sách các danh sách. Bạn muốn lọc danh sách các danh sách để chỉ những danh sách bên trong vẫn thỏa mãn một điều kiện nhất định. Điều kiện này là một hàm của danh sách bên trong như trung bình hoặc tổng của các yếu tố danh sách bên trong.
  • Ví dụ: Đưa ra danh sách các danh sách sau đây với các phép đo nhiệt độ hàng tuần mỗi tuần và một danh sách bên trong mỗi tuần.

Cách lọc ra những tuần lạnh hơn với giá trị nhiệt độ trung bình

Có hai phương pháp tương đương về mặt ngữ nghĩa để đạt được điều này: danh sách hiểu và hàm

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
20. Hãy cùng khám phá cả hai biến thể tiếp theo:

Những bài viết liên quan:

Danh sách hiểu - Danh sách Python: Given a list of lists. Group the elements by common element and store the result in a dictionary [key = common element].

Bộ lọc [] vs danh sách hiểu: Say, you’ve got a database with multiple rows [the list of lists] where each row consists of three attributes: Name, Age, and Income. You want to group by Name and store the result in a dictionary. The dictionary keys are given by the Name attribute. The dictionary values are a list of rows that have this exact Name attribute.

Danh sách lồng nhau hiểu: Here’s the data and how you can group by a common attribute [e.g., Name].

list = []

# Create List of list
for i in range[2]:
    list.append[[]]
    for j in range[3]: 
        list[i].append[j]

print[lst] 
1

Hướng dẫn cuối cùng về danh sách Python

Danh sách hiểu

  • Nhóm theo - Danh sách danh sách Python
  • Danh sách Python của nhóm danh sách bởi - Hướng dẫn minh họa đơn giản [+pandas.groupby []]
  • Hướng dẫn này chỉ cho bạn cách nhóm các danh sách bên trong của danh sách Python theo Danh sách theo yếu tố chung.
  • Vấn đề: Đưa ra một danh sách các danh sách. Nhóm các phần tử theo phần tử chung và lưu trữ kết quả trong từ điển [khóa = phần tử chung].
  • Ví dụ: giả sử, bạn đã có một cơ sở dữ liệu với nhiều hàng [danh sách danh sách] trong đó mỗi hàng bao gồm ba thuộc tính: tên, tuổi và thu nhập. Bạn muốn nhóm theo tên và lưu trữ kết quả trong một từ điển. Các khóa từ điển được đưa ra bởi thuộc tính tên. Các giá trị từ điển là một danh sách các hàng có thuộc tính tên chính xác này.

Giải pháp: Ở đây, dữ liệu và cách bạn có thể nhóm theo một thuộc tính chung [ví dụ: tên].

Bạn có thể thấy rằng kết quả là một từ điển có một khóa cho mỗi tên [
[[a,b],[c,d],[e,f]]
47,
[[a,b],[c,d],[e,f]]
48 và
[[a,b],[c,d],[e,f]]
49]. Alice xuất hiện trong hai hàng của cơ sở dữ liệu ban đầu [danh sách danh sách]. Do đó, bạn liên kết hai hàng với tên của cô ấy, chỉ duy trì các thuộc tính tuổi và thu nhập cho mỗi hàng.

Chiến lược làm thế nào bạn thực hiện điều này rất đơn giản:

Tạo từ điển trống.

Đi qua mỗi hàng trong danh sách các danh sách. Giá trị đầu tiên của danh sách hàng là thuộc tính tên.

Thêm thuộc tính tên

[[a,b],[c,d],[e,f]]
50 vào từ điển nếu nó không tồn tại, nhưng lại sử dụng từ điển vào danh sách trống. Bây giờ, bạn có thể chắc chắn rằng chìa khóa tồn tại trong từ điển. Your subconsciousness often knows better than your conscious mind what skills you need to reach the next level of success.

Nối các phần phụ của nhóm phụ ____251 vào giá trị từ điển để điều này trở thành danh sách các danh sách cũng như một danh sách trên mỗi hàng cơ sở dữ liệu.one tutorial per day [only 5 minutes per tutorial is enough] to make sure you never stop learning!

Bây giờ bạn đã nhóm tất cả các mục cơ sở dữ liệu bằng một thuộc tính chung [= name].

Càng xa càng tốt. Nhưng điều gì sẽ xảy ra nếu bạn muốn thực hiện một số tập hợp trên các hàng cơ sở dữ liệu được nhóm? Đọc bài viết chi tiết của tôi trên blog Finxter để làm chủ điều này!

Bản tóm tắt

  • Xin chúc mừng! Hướng dẫn chuyên sâu này đã cho bạn thấy mọi thứ bạn cần biết để xử lý danh sách danh sách Python [danh sách lồng nhau]. Điều quan trọng là phải thấy danh sách danh sách Python hoạt động giống như danh sách Python với các đối tượng khác. Những người tạo ra Python đảm bảo rằng danh sách các danh sách tuân theo các quy tắc giống như tất cả các danh sách các đối tượng khác. Điều này đúng để sắp xếp, sao chép, hàm tối đa hoặc cắt lát, các đối tượng danh sách bên trong chỉ là: các đối tượng.
  • Nhiều hướng dẫn Finxter
  • Học tập là một quá trình liên tục và bạn sẽ khôn ngoan khi không bao giờ ngừng học hỏi và cải thiện trong suốt cuộc đời. 👑
  • Học gì? Tiềm thức của bạn thường biết rõ hơn tâm trí có ý thức của bạn những kỹ năng bạn cần để đạt đến cấp độ thành công tiếp theo.
  • Chuyển đổi danh sách INT thành danh sách chuỗi
  • Chuyển đổi danh sách chuỗi thành danh sách float
  • Chuyển đổi danh sách thành mảng numpy
  • Nối dữ liệu vào tệp JSON
  • Danh sách lọc Python
  • Danh sách lồng nhau

Quản lý phụ thuộc Python:

  • Cài đặt PIP
  • Cách kiểm tra phiên bản Python của bạn
  • Kiểm tra phiên bản Pandas trong tập lệnh
  • Kiểm tra phiên bản Python Jupyter
  • Kiểm tra phiên bản của gói PIP

Python gỡ lỗi:

  • Bắt và in ngoại lệ
  • Danh sách chỉ số vượt khỏi phạm vi
  • Khắc phục sự thật lỗi giá trị
  • Không thể nhập tên x lỗi

Công cụ thú vị:

  • 5 tấm cheat mọi lập trình viên python cần phải sở hữu
  • 10 Câu đố Python tốt nhất để khám phá trình độ kỹ năng thực sự của bạn
  • Làm thế nào để $ 1000 ở bên cạnh như một người làm việc tự do Python

Cảm ơn vì đã học với Finxter!

Hài hước lập trình - Python

Tôi đã viết 20 chương trình ngắn ở Python ngày hôm qua. Thật tuyệt. Perl, tôi đã rời bỏ bạn. - XKCD

Đi đâu từ đây?

Đủ lý thuyết. Hãy để có được một số thực hành!

Các lập trình viên được trả tiền sáu con số và hơn thế nữa vì họ có thể giải quyết các 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 mã hóa, giải quyết nhiều vấn đề thực sự hơn cho người thực. Đó là cách bạn đánh bóng các kỹ năng bạn thực sự cần trong thực tế. Rốt cuộc, những gì mà việc sử dụng lý thuyết học tập mà không ai cần?

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 hỏi với các dự án đồ chơi và tập trung vào các dự án mã thực tế kiếm tiền cho bạn và giải quyết các vấn đề thực sự cho mọi người?

Nếu câu trả lời của bạn là có !, Hãy xem xét việc trở thành một nhà phát triển tự do Python! Đó là cách tốt nhất để tiếp cận nhiệm vụ cải thiện các kỹ năng trăn của bạn, ngay cả khi bạn là người mới bắt đầu hoàn toàn.YES!, consider becoming a Python freelance developer! It’s the best way of approaching the task of improving your Python skills—even if you are a complete beginner.

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 Làm thế nào để xây dựng kỹ năng thu nhập cao của bạn Python và tìm hiểu cách tôi phát triển kinh doanh mã hóa của mình trực tuyến và làm thế nào bạn có thể, từ sự thoải mái của bạn riêng nhà.

Tham gia hội thảo trên web miễn phí ngay bây giờ!

Trong khi làm việc như một nhà nghiên cứu trong các hệ thống phân tán, Tiến sĩ Christian Mayer đã tìm thấy tình yêu của mình đối với việc dạy các sinh viên khoa học máy tính.

Để giúp học sinh đạt được thành công cao hơn của Python, ông đã thành lập trang web giáo dục chương trình Finxter.com. Ông là tác giả của cuốn sách lập trình phổ biến Python Oneer [Nostarch 2020], đồng tác giả của loạt sách Break Break Python, những cuốn sách tự xuất bản, người đam mê khoa học máy tính, freelancer và chủ sở hữu của một trong 10 blog Python lớn nhất trên toàn thế giới.

Niềm đam mê của ông là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ tăng cường các kỹ năng của họ. Bạn có thể tham gia học viện email miễn phí của anh ấy ở đây.

Chúng ta có thể lưu trữ danh sách trong danh sách trong Python không?

Danh sách có thể chứa bất kỳ đối tượng Python nào, bao gồm các danh sách [nghĩa là, danh sách danh sách]. Danh sách được lập chỉ mục và cắt lát bằng dấu ngoặc vuông [ví dụ: danh sách [0] và danh sách [2: 9]], theo cách tương tự như chuỗi và mảng. [i.e., list of lists]. Lists are indexed and sliced with square brackets [e.g., list[0] and list[2:9]], in the same way as strings and arrays.

Bạn có thể lưu trữ một danh sách trong một danh sách?

Danh sách lồng nhau là một danh sách các danh sách hoặc bất kỳ danh sách nào có danh sách khác là một yếu tố [một người đăng ký phụ]. Chúng có thể hữu ích nếu bạn muốn tạo một ma trận hoặc cần lưu trữ một trình phụ thuộc cùng với các loại dữ liệu khác.. They can be helpful if you want to create a matrix or need to store a sublist along with other data types.

Làm cách nào để lưu trữ một danh sách trong danh sách khác?

Phương pháp số 1: Sử dụng vòng lặp chèn [] + trong phương thức này, chúng tôi chèn một phần tử bằng 1 mỗi lần bằng cách sử dụng hàm chèn.Bằng cách này, chúng tôi thêm tất cả các yếu tố danh sách tại chỉ mục được chỉ định trong danh sách khác.Using insert[] + loop In this method, we insert one element by 1 at a time using the insert function. This way we add all the list elements at the specified index in other list.

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

Tạo danh sách Python trong Python, một danh sách được tạo bằng cách đặt các phần tử bên trong dấu ngoặc vuông [], được phân tách bằng dấu phẩy.Một danh sách có thể có bất kỳ số lượng mục nào và chúng có thể thuộc các loại khác nhau [số nguyên, float, chuỗi, v.v.].Một danh sách cũng có thể có một danh sách khác như một mục.Đây được gọi là một danh sách lồng nhau.

Bài Viết Liên Quan

Chủ Đề