Phương thức Python Zip [] trả về một đối tượng ZIP, một trình lặp của các bộ dữ liệu trong đó phần tử đầu tiên trong mỗi lần lặp đi qua được ghép nối với nhau. Sau đó, phần tử thứ hai trong mỗi lần lặp được cho được ghép nối với nhau và phần thứ ba, v.v.
Để tạo danh sách pythonziplist của danh sách, hãy xác định ba danh sách khác nhau với cùng một số phần tử và chuyển các danh sách đó sang phương thức zip [], sẽ trả về trình lặp tuple và sau đó chuyển đổi nó thành danh sách bằng phương thức Danh sách [].create a Python zip list of lists, define three different lists with the same number of elements and pass those lists to the zip[] method, which will return the tuple iterator and then convert it into the list using the list[] method.
# app.py stocks = ['reliance', 'infosys', 'tcs'] prices = [2175, 1127, 2750] sectors = ['Oil and Telecom', 'IT', 'IT'] zipped = zip[stocks, prices, sectors] print[list[zipped]]
Đầu ra
[['reliance', 2175, 'Oil and Telecom'], ['infosys', 1127, 'IT'], ['tcs', 2750, 'IT']]
Bạn có thể thấy rằng nó kết hợp với mục đầu tiên của mỗi danh sách, sau đó là thứ hai và thứ ba. Chúng ta có thể kết hợp danh sách các danh sách bằng phương thức zip [].
Giải nén các đối số
Tình huống ngược lại xảy ra khi các đối số đã nằm trong danh sách hoặc tuple nhưng phải được giải nén cho một cuộc gọi chức năng yêu cầu các đối số vị trí riêng biệt.list or tuple but have to be unpacked for a function call requiring separate positional arguments.
Ví dụ: hàm RANGE [] Inbuilt [] mong đợi các đối số Start & nbsp; và & nbsp; dừng. Nếu chúng không có sẵn riêng biệt, hãy viết cuộc gọi chức năng với trình điều hành *để giải nén các đối số khỏi danh sách hoặc tuple.range[] function expects separate start and stop arguments. If they are unavailable separately, write the function call with the *-operator to unpack the arguments from a list or tuple.
# app.py rdata = list[range[2, 8]] print[rdata] args = [2, 8] op = list[range[*args]] print[op]
Đầu ra
[2, 3, 4, 5, 6, 7] [2, 3, 4, 5, 6, 7]
Bạn có thể thấy rằng nó kết hợp với mục đầu tiên của mỗi danh sách, sau đó là thứ hai và thứ ba. Chúng ta có thể kết hợp danh sách các danh sách bằng phương thức zip [].
# app.py x = [1, 2] y = [11, 22] z = [111, 222] op = zip[*[x, y, z]] print[list[op]]
Đầu ra
[[1, 11, 111], [2, 22, 222]]
Bạn có thể thấy rằng nó kết hợp với mục đầu tiên của mỗi danh sách, sau đó là thứ hai và thứ ba. Chúng ta có thể kết hợp danh sách các danh sách bằng phương thức zip [].
Giải nén các đối số
Tình huống ngược lại xảy ra khi các đối số đã nằm trong danh sách hoặc tuple nhưng phải được giải nén cho một cuộc gọi chức năng yêu cầu các đối số vị trí riêng biệt.merge/zip them together. This is quite an uncommon scenario, but the solution can still be easy.
Ví dụ: hàm RANGE [] Inbuilt [] mong đợi các đối số Start & nbsp; và & nbsp; dừng. Nếu chúng không có sẵn riêng biệt, hãy viết cuộc gọi chức năng với trình điều hành *để giải nén các đối số khỏi danh sách hoặc tuple.itertools.chain[] + zip[] methods.
# app.py import itertools listA = [[2, 4], [6, 8], [10, 12]] listB = [[1, 3], [5, 7], [9, 11]] op = [list[itertools.chain[*i]] for i in zip[listA, listB]] print[list[op]]
Đầu ra
[[2, 4, 1, 3], [6, 8, 5, 7], [10, 12, 9, 11]]
Bạn có thể thấy rằng nó kết hợp với mục đầu tiên của mỗi danh sách, sau đó là thứ hai và thứ ba. Chúng ta có thể kết hợp danh sách các danh sách bằng phương thức zip [].itertools.chain[] and zip[] functions can perform this particular job. The chain[] function can perform the inter-list aggregation, and the final aggregation is done by the zip[] method.
Giải nén các đối số
Tôi muốn zip danh sách danh sách sau:
>>> zip[[[1,2], [3,4], [5,6]]]
[[1,3,5], [2,4,6]]
Điều này có thể đạt được với việc triển khai
# app.py rdata = list[range[2, 8]] print[rdata] args = [2, 8] op = list[range[*args]] print[op]0 hiện tại chỉ khi danh sách được chia thành các thành phần riêng lẻ:
>>> zip[[1,2], [3,4], [5,6]]
[1, 3, 5], [2, 4, 6]]
Không thể tìm ra cách phân chia danh sách và chuyển các yếu tố riêng lẻ cho
# app.py rdata = list[range[2, 8]] print[rdata] args = [2, 8] op = list[range[*args]] print[op]0. Một giải pháp chức năng được ưa thích.
Trong bài đăng này, bạn sẽ học cách sử dụng danh sách Python to ZIP, bao gồm cách zip hai hoặc nhiều danh sách trong Python. Cụ thể, bạn sẽ học cách zip hai danh sách Python, ZIP ba hoặc nhiều danh sách, danh sách các độ dài khác nhau và danh sách danh sách.
- Hàm Zip Python là gì?
- Cách zip hai danh sách trong Python
- Cách zip 3 [hoặc nhiều hơn] danh sách trong Python
- Cách zip danh sách các độ dài khác nhau trong Python
- Cách zip danh sách danh sách trong Python
- Sự kết luận
- Tài nguyên bổ sung
Hàm Zip Python là gì?
Cách zip hai danh sách trong Python
Cách zip 3 [hoặc nhiều hơn] danh sách trong Python
Cách zip danh sách các độ dài khác nhau trong Python
[['reliance', 2175, 'Oil and Telecom'], ['infosys', 1127, 'IT'], ['tcs', 2750, 'IT']]0
Cách zip danh sách danh sách trong Python
[['reliance', 2175, 'Oil and Telecom'], ['infosys', 1127, 'IT'], ['tcs', 2750, 'IT']]1
Sự kết luận
Tài nguyên bổ sung
Chức năng Python & nbsp; ____ 22 & nbsp; là một hàm tích hợp, trả về một đối tượng tererator chứa các bộ dữ liệu, mỗi trong đó chứa một loạt các nhóm chứa các phần tử từ mỗi đối tượng có thể.
[['reliance', 2175, 'Oil and Telecom'], ['infosys', 1127, 'IT'], ['tcs', 2750, 'IT']]2
Bây giờ, định nghĩa này là một chút phức tạp. Nó có thể hữu ích khi nghĩ về & nbsp; ____ 22 & nbsp; có chức năng kết hợp hai hoặc nhiều danh sách [hoặc các đối tượng khác có thể đi được] vào một đối tượng chứa các bộ dữ liệu được đặt hàng từ danh sách.
Ví dụ: bạn đã đưa ra hai danh sách: & nbsp; ____ ____ 24, trong đó có chứa & nbsp; Nếu bạn đã zip hai danh sách này, bạn sẽ lấy lại như sau:
[['reliance', 2175, 'Oil and Telecom'], ['infosys', 1127, 'IT'], ['tcs', 2750, 'IT']]3
Bây giờ, bạn có thể nhận thấy rằng chúng tôi đã gói hàm zip [] với chức năng & nbsp; ____ ____ 28 & nbsp; Lý do cho điều này là chức năng zip thực sự trả về A & nbsp; ________ 20 & nbsp; đối tượng. Chúng tôi có thể xác nhận điều này bằng cách kiểm tra loại này:
[['reliance', 2175, 'Oil and Telecom'], ['infosys', 1127, 'IT'], ['tcs', 2750, 'IT']]4
Hàm zip có bất kỳ số lượng đối tượng có thể lặp lại và sẽ zip chúng lại với nhau. Tuy nhiên, một cái gì đó cần lưu ý: & nbsp; chức năng zip tích hợp sẽ tối đa với chiều dài của số ít nhất được cung cấp. Bởi vì điều này, nếu một danh sách chứa 5 phần tử và một danh sách khác chứa một triệu - đối tượng ZIP thu được sẽ chỉ chứa 5 mục. Sau đó trong bài đăng này, chúng tôi sẽ khám phá cách làm việc với các danh sách kéo dài các độ dài khác nhau.
Cách zip 3 [hoặc nhiều hơn] danh sách trong Python
Cách zip danh sách các độ dài khác nhau trong Python
Cách zip danh sách danh sách trong Python
[['reliance', 2175, 'Oil and Telecom'], ['infosys', 1127, 'IT'], ['tcs', 2750, 'IT']]5
Sự kết luận
Cách zip danh sách các độ dài khác nhau trong Python
Cách zip danh sách danh sách trong Python
Sự kết luận
[['reliance', 2175, 'Oil and Telecom'], ['infosys', 1127, 'IT'], ['tcs', 2750, 'IT']]6
Tài nguyên bổ sung
Chức năng Python & nbsp; ____ 22 & nbsp; là một hàm tích hợp, trả về một đối tượng tererator chứa các bộ dữ liệu, mỗi trong đó chứa một loạt các nhóm chứa các phần tử từ mỗi đối tượng có thể.
[['reliance', 2175, 'Oil and Telecom'], ['infosys', 1127, 'IT'], ['tcs', 2750, 'IT']]7
Bây giờ, định nghĩa này là một chút phức tạp. Nó có thể hữu ích khi nghĩ về & nbsp; ____ 22 & nbsp; có chức năng kết hợp hai hoặc nhiều danh sách [hoặc các đối tượng khác có thể đi được] vào một đối tượng chứa các bộ dữ liệu được đặt hàng từ danh sách.
Ví dụ: bạn đã đưa ra hai danh sách: & nbsp; ____ ____ 24, trong đó có chứa & nbsp; Nếu bạn đã zip hai danh sách này, bạn sẽ lấy lại như sau:
[['reliance', 2175, 'Oil and Telecom'], ['infosys', 1127, 'IT'], ['tcs', 2750, 'IT']]8
Bây giờ, bạn có thể nhận thấy rằng chúng tôi đã gói hàm zip [] với chức năng & nbsp; ____ ____ 28 & nbsp; Lý do cho điều này là chức năng zip thực sự trả về A & nbsp; ________ 20 & nbsp; đối tượng. Chúng tôi có thể xác nhận điều này bằng cách kiểm tra loại này:
Cách zip danh sách danh sách trong Python
Sự kết luận
Tài nguyên bổ sung
[['reliance', 2175, 'Oil and Telecom'], ['infosys', 1127, 'IT'], ['tcs', 2750, 'IT']]9
Chức năng Python & nbsp; ____ 22 & nbsp; là một hàm tích hợp, trả về một đối tượng tererator chứa các bộ dữ liệu, mỗi trong đó chứa một loạt các nhóm chứa các phần tử từ mỗi đối tượng có thể.
- Đầu tiên giải nén từng mục của danh sách bên ngoài, do đó trả về hai danh sách bên trong.
- Sau đó, các danh sách này sau đó được nén.
- Cuối cùng, đối tượng zip được biến thành một danh sách.
Sự kết luận
Trong bài đăng này, bạn đã học cách zip hai hoặc nhiều danh sách Python. Bạn cũng đã học cách làm việc với các danh sách có độ dài [không đồng đều] khác nhau cũng như với danh sách danh sách.
Để tìm hiểu thêm về Python & nbsp; ________ 22 & nbsp; chức năng, hãy xem & nbsp; tài liệu chính thức ở đây. Để tìm hiểu thêm về itertool từ & nbsp; ____ 43 & nbsp; chức năng, hãy xem & nbsp; tài liệu chính thức ở đây.
Tài nguyên bổ sung
Để tìm hiểu thêm về các chủ đề liên quan, hãy xem các hướng dẫn dưới đây:
- Danh sách Python: Tổng quan đầy đủ
- Chỉ số danh sách Python: Tìm đầu tiên, cuối cùng hoặc tất cả các lần xuất hiện
- Tìm bản sao trong danh sách Python
- Python: Chọn phần tử ngẫu nhiên từ danh sách