💬 câu hỏi. Đưa ra một danh sách các danh sách như
lists = [[1, 2, 1], [3, 4, 3], [5, 6, 5]] tuples = tuple[tuple[x] for x in lists] print[tuples] # [[1, 2, 1], [3, 4, 3], [5, 6, 5]]8. Làm cách nào để chuyển đổi nó thành một bộ gồm nhiều bộ, chẳng hạn như
lists = [[1, 2, 1], [3, 4, 3], [5, 6, 5]] tuples = tuple[tuple[x] for x in lists] print[tuples] # [[1, 2, 1], [3, 4, 3], [5, 6, 5]]9?
Nếu bạn đang vội, đây là cách Pythonic nhất để chuyển đổi danh sách lồng nhau thành bộ dữ liệu lồng nhau
Sử dụng biểu thức trình tạo có hàm
lists = [[1, 2, 1], [3, 4, 3], [5, 6, 5]] tuples = tuple[tuple[x] for x in lists] print[tuples] # [[1, 2, 1], [3, 4, 3], [5, 6, 5]]0 tích hợp để chuyển đổi danh sách các danh sách thành một bộ gồm các bộ như vậy.
lists = [[1, 2, 1], [3, 4, 3], [5, 6, 5]] tuples = tuple[tuple[x] for x in lists] print[tuples] # [[1, 2, 1], [3, 4, 3], [5, 6, 5]]1
Đây là hình ảnh về cách chuyển đổi qua lại giữa danh sách lồng nhau và bộ dữ liệu lồng nhau
Nhưng có nhiều hơn thế. Nghiên cứu các phương pháp khác nhau để đạt được cùng một mục tiêu sẽ giúp bạn trở thành một lập trình viên giỏi hơn. 🧑💻
Vì vậy hãy tiếp tục đọc
Phương pháp 1. Hiểu Tuple + tuple[]
Cách được khuyến nghị để chuyển đổi danh sách các danh sách thành một bộ gồm nhiều bộ là sử dụng biểu thức trình tạo kết hợp với hàm
lists = [[1, 2, 1], [3, 4, 3], [5, 6, 5]] tuples = tuple[tuple[x] for x in lists] print[tuples] # [[1, 2, 1], [3, 4, 3], [5, 6, 5]]0 tích hợp như vậy.
lists = [[1, 2, 1], [3, 4, 3], [5, 6, 5]] tuples = tuple[tuple[x] for x in lists] print[tuples] # [[1, 2, 1], [3, 4, 3], [5, 6, 5]]1
Đây là một ví dụ cụ thể
lists = [[1, 2], [3, 4], [5, 6]] tuples = tuple[tuple[x] for x in lists] print[tuples] # [[1, 2], [3, 4], [5, 6]]
Tự mình thử
Cách làm này đơn giản và hiệu quả. Biểu thức trình tạo xác định cách chuyển đổi từng danh sách bên trong [trong ví dụ là ____11] thành phần tử bộ dữ liệu mới
Bạn sử dụng hàm tạo
lists = [[1, 2, 1], [3, 4, 3], [5, 6, 5]] tuples = tuple[tuple[x] for x in lists] print[tuples] # [[1, 2, 1], [3, 4, 3], [5, 6, 5]]2 để tạo một bộ dữ liệu mới từ danh sách
lists = [[1, 2, 1], [3, 4, 3], [5, 6, 5]] tuples = tuple[tuple[x] for x in lists] print[tuples] # [[1, 2, 1], [3, 4, 3], [5, 6, 5]]1
Python tuple[] — Hướng dẫn đơn giản
Xem video này trên YouTube
Ví dụ Ba phần tử trên mỗi Tuple
Nếu bạn có ba yếu tố cho mỗi danh sách, bạn có thể sử dụng phương pháp tương tự với chuyển đổi
lists = [[1, 2, 1], [3, 4, 3], [5, 6, 5]] tuples = tuple[tuple[x] for x in lists] print[tuples] # [[1, 2, 1], [3, 4, 3], [5, 6, 5]]
Bạn có thể xem quy trình thực thi trong hình ảnh tương tác sau [chỉ cần nhấp vào nút “Tiếp theo” để xem điều gì đang xảy ra trong mã]
Ví dụ thay đổi số lượng phần tử danh sách
Và nếu bạn có số lượng phần tử khác nhau trong mỗi danh sách, cách tiếp cận này vẫn hoạt động tốt
lists = [[1], [2, 4, 3], [6, 5]] tuples = tuple[tuple[x] for x in lists] print[tuples] # [[1,], [2, 4, 3], [6, 5]]
Bạn thấy rằng một cách tiếp cận với biểu thức trình tạo là cách tốt nhất để chuyển đổi một danh sách các danh sách thành một bộ gồm các bộ
Nhưng có bất kỳ lựa chọn thay thế?
Phương pháp 2. Chức năng bản đồ + danh sách[]
Sử dụng chức năng bản đồ áp dụng một chức năng được chỉ định trên từng thành phần của một lần lặp
💡Lưu ý bên lề. Guido van Rossum, người tạo ra Python, không thích hàm
lists = [[1, 2, 1], [3, 4, 3], [5, 6, 5]] tuples = tuple[tuple[x] for x in lists] print[tuples] # [[1, 2, 1], [3, 4, 3], [5, 6, 5]]4 vì nó khó đọc hơn và kém hiệu quả hơn phiên bản biểu thức trình tạo [Phương pháp 1 trong hướng dẫn này]. Bạn có thể đọc về một cuộc thảo luận chi tiết về cách anh ấy lập luận chính xác trên bài viết trên blog của tôi
Vì vậy, không cần phải quảng cáo thêm, đây là cách bạn có thể chuyển đổi một danh sách các danh sách thành một bộ gồm các bộ bằng cách sử dụng hàm
lists = [[1, 2, 1], [3, 4, 3], [5, 6, 5]] tuples = tuple[tuple[x] for x in lists] print[tuples] # [[1, 2, 1], [3, 4, 3], [5, 6, 5]]4________số 8
Hãy tự mình thử
Video hướng dẫn về hàm
lists = [[1, 2, 1], [3, 4, 3], [5, 6, 5]] tuples = tuple[tuple[x] for x in lists] print[tuples] # [[1, 2, 1], [3, 4, 3], [5, 6, 5]]4
Làm chủ chức năng bản đồ Python [+Video]
Xem video này trên YouTube
Đối số đầu tiên của hàm
lists = [[1, 2, 1], [3, 4, 3], [5, 6, 5]] tuples = tuple[tuple[x] for x in lists] print[tuples] # [[1, 2, 1], [3, 4, 3], [5, 6, 5]]4 là tên hàm
lists = [[1, 2, 1], [3, 4, 3], [5, 6, 5]] tuples = tuple[tuple[x] for x in lists] print[tuples] # [[1, 2, 1], [3, 4, 3], [5, 6, 5]]8
Hàm
lists = [[1, 2, 1], [3, 4, 3], [5, 6, 5]] tuples = tuple[tuple[x] for x in lists] print[tuples] # [[1, 2, 1], [3, 4, 3], [5, 6, 5]]0 này chuyển đổi từng phần tử trên
lists = [[1], [2, 4, 3], [6, 5]] tuples = tuple[tuple[x] for x in lists] print[tuples] # [[1,], [2, 4, 3], [6, 5]]0 có thể lặp đã cho [đối số thứ hai] thành một bộ
Kết quả của hàm
lists = [[1, 2, 1], [3, 4, 3], [5, 6, 5]] tuples = tuple[tuple[x] for x in lists] print[tuples] # [[1, 2, 1], [3, 4, 3], [5, 6, 5]]4 cũng là một lần lặp, vì vậy bạn cần chuyển đổi nó thành một bộ trước khi in nó ra trình bao vì biểu diễn chuỗi mặc định của một lần lặp không thể đọc được bằng con người
Phương pháp 3. Vòng lặp đơn giản với append[] và tuple[]
Để chuyển đổi danh sách các danh sách thành một bộ gồm các bộ, trước tiên hãy khởi tạo một danh sách “bên ngoài” trống và lưu trữ nó trong một biến
Sau đó, lặp lại tất cả các danh sách bằng cách sử dụng vòng lặp
lists = [[1], [2, 4, 3], [6, 5]] tuples = tuple[tuple[x] for x in lists] print[tuples] # [[1,], [2, 4, 3], [6, 5]]2 đơn giản và chuyển đổi từng danh sách riêng biệt thành một bộ
Tiếp theo, nối từng kết quả vào biến danh sách bên ngoài bằng cách sử dụng phương thức dựng sẵn
lists = [[1], [2, 4, 3], [6, 5]] tuples = tuple[tuple[x] for x in lists] print[tuples] # [[1,], [2, 4, 3], [6, 5]]3 trong thân vòng lặp
Cuối cùng, chuyển đổi danh sách các bộ dữ liệu thành danh sách bộ dữ liệu sử dụng hàm
lists = [[1], [2, 4, 3], [6, 5]] tuples = tuple[tuple[x] for x in lists] print[tuples] # [[1,], [2, 4, 3], [6, 5]]4
Ví dụ sau đây thực hiện chính xác điều đó
lists = [[1, 2, 1], [3, 4, 3], [5, 6, 5]] tuples = tuple[tuple[x] for x in lists] print[tuples] # [[1, 2, 1], [3, 4, 3], [5, 6, 5]]7
Video hướng dẫn liên quan
Làm cách nào để chuyển đổi danh sách danh sách thành danh sách bộ dữ liệu trong Python?
Xem video này trên YouTube
Bài viết chuyển đổi liên quan
- Cách chuyển đổi danh sách danh sách thành danh sách bộ dữ liệu
- Cách chuyển đổi danh sách danh sách thành khung dữ liệu Pandas
- Cách chuyển đổi danh sách danh sách thành mảng NumPy
- Cách chuyển đổi danh sách danh sách thành từ điển trong Python
- Cách chuyển đổi Tuple of Tuples thành List of Lists trong Python
Đi đâu từ đây?
Đủ lý thuyết. Hãy thực hành một số
Các lập trình viên được trả sáu con số trở lên vì họ có thể giải quyết vấn đề hiệu quả hơn bằng cách sử dụng trí thông minh máy móc và tự động hóa
Để trở nên thành công hơn trong việc viết mã, hãy giải quyết nhiều vấn đề thực tế hơn cho người thực. Đó là cách bạn trau dồi những kỹ năng bạn thực sự cần trong thực tế. Rốt cuộc, việc sử dụng lý thuyết học tập mà không ai cần là gì?
Bạn xây dựng các kỹ năng mã hóa có giá trị cao bằng cách làm việc trên các dự án mã hóa thực tế
Bạn có muốn ngừng học với các dự án đồ chơi và tập trung vào các dự án mã thực tế giúp bạn kiếm tiền và giải quyết các vấn đề thực sự cho mọi người không?
🚀 Nếu câu trả lời của bạn là CÓ. , cân nhắc trở thành nhà phát triển Python tự do. Đó là cách tốt nhất để tiếp cận nhiệm vụ cải thiện kỹ năng Python của bạn—ngay cả khi bạn là người mới hoàn toàn
Nếu bạn chỉ muốn tìm hiểu về cơ hội làm việc tự do, vui lòng xem hội thảo trên web miễn phí của tôi “Cách xây dựng kỹ năng Python có thu nhập cao của bạn” và tìm hiểu cách tôi phát triển công việc viết mã trực tuyến của mình cũng như cách bạn có thể làm được—từ sự thoải mái của bạn
Tham gia hội thảo trên web miễn phí ngay bây giờ
Chris
Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính
Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới
Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây