Hàm zip lặp song song qua một số lần lặp và tạo các bộ dữ liệu với một mục từ mỗi lần lặp
Hàm
>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
5 trả về một bộ lặp gồm các bộMục đầu tiên trong mỗi bộ dữ liệu được lấy từ danh sách đầu tiên và mục thứ hai được lấy từ danh sách thứ hai
Bạn có thể sử dụng phương pháp này để kết hợp nhiều hơn hai danh sách thành một danh sách các bộ
Bước cuối cùng là sử dụng lớp
>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
6 để chuyển đổi đối tượng >>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
5 thành danh sáchNgoài ra, bạn có thể sử dụng hàm
>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
8Hợp nhất hai danh sách thành một Danh sách các Bộ bằng cách sử dụng map[] #
Để hợp nhất hai danh sách thành một danh sách các bộ
- Truyền hàm lambda và hai danh sách cho hàm
8>>> for item in zip[first_names, middle_initials, surnames]: .. print[item] ... ['Joe', 'A', 'Bloggs'] ['Jane', 'B', 'Doe'] ['Mark', 'C', 'Smith']
- Hàm lambda sẽ trả về một bộ chứa hai phần tử danh sách
- Sử dụng lớp
6 để chuyển đổi đối tượng>>> for item in zip[first_names, middle_initials, surnames]: .. print[item] ... ['Joe', 'A', 'Bloggs'] ['Jane', 'B', 'Doe'] ['Mark', 'C', 'Smith']
50 thành danh sách các bộ dữ liệu>>> for item in zip[first_names, middle_initials, surnames]: .. print[item] ... ['Joe', 'A', 'Bloggs'] ['Jane', 'B', 'Doe'] ['Mark', 'C', 'Smith']
Hàm map[] nhận một hàm và một hoặc nhiều lần lặp làm đối số và gọi hàm với các đối số từ mỗi lần lặp
Hàm
>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
50 trả về một đối tượng >>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
50, vì vậy chúng ta phải sử dụng lớp >>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
6 để chuyển đổi kết quả thành một danh sáchNgoài ra, bạn có thể sử dụng cách hiểu danh sách
Hợp nhất hai danh sách thành một Danh sách các bộ bằng cách sử dụng tính năng hiểu danh sách[] #
Để hợp nhất hai danh sách thành một danh sách các bộ
- Sử dụng khả năng hiểu danh sách để lặp lại đối tượng
54 với độ dài của danh sách>>> for item in zip[first_names, middle_initials, surnames]: .. print[item] ... ['Joe', 'A', 'Bloggs'] ['Jane', 'B', 'Doe'] ['Mark', 'C', 'Smith']
- Trên mỗi lần lặp lại, trả về một bộ chứa các mục tương ứng từ danh sách thứ nhất và thứ hai
Chúng tôi đã sử dụng lớp
>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
55 để lấy một đối tượng phạm vi có độ dài của danh sáchLớp phạm vi thường được sử dụng để lặp một số lần cụ thể
Chúng tôi đã sử dụng cách hiểu danh sách để lặp lại đối tượng
>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
54Khả năng hiểu danh sách được sử dụng để thực hiện một số thao tác cho mọi phần tử hoặc chọn một tập hợp con các phần tử đáp ứng một điều kiện
Trên mỗi lần lặp, chúng tôi truy cập hai danh sách tại chỉ mục hiện tại và trả về một bộ chứa kết quả
Ngoài ra, bạn có thể sử dụng vòng lặp
>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
57Hợp nhất hai danh sách thành một Danh sách các Bộ bằng cách sử dụng vòng lặp for #
Để hợp nhất hai danh sách thành một danh sách các bộ
- Sử dụng vòng lặp
57 để lặp qua đối tượng>>> for item in zip[first_names, middle_initials, surnames]: .. print[item] ... ['Joe', 'A', 'Bloggs'] ['Jane', 'B', 'Doe'] ['Mark', 'C', 'Smith']
54 với độ dài của danh sách>>> for item in zip[first_names, middle_initials, surnames]: .. print[item] ... ['Joe', 'A', 'Bloggs'] ['Jane', 'B', 'Doe'] ['Mark', 'C', 'Smith']
- Trên mỗi lần lặp, xây dựng một bộ chứa các mục tương ứng từ hai danh sách
- Nối từng bộ dữ liệu vào một danh sách mới
Chúng tôi đã sử dụng vòng lặp
>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
57 để lặp lại danh sáchTrên mỗi lần lặp, chúng tôi xây dựng một bộ chứa các mục từ hai danh sách dựa trên chỉ mục hiện tại
Chúng tôi đã sử dụng phương pháp
>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
61 để nối từng bộ dữ liệu vào một danh sách mớiBạn chọn cách tiếp cận nào là vấn đề sở thích cá nhân. Tôi sẽ sử dụng hàm
>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
3 vì tôi thấy nó khá trực tiếp và trực quan Làm cách nào để nén hai danh sách lại với nhau trong Python?
Hàm tích hợp sẵn
>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
3 cho phép người dùng kết hợp các lần lặp, chẳng hạn như danh sách, thành các bộ dữ liệu bằng cách lấy từng mục tương ứng từ danh sách được truyền vào tham số của nó, hợp nhất các danh sách thành một. Không quan trọng bạn có hai hay nhiều danh sách, chức năng là các tham số danh sách giống nhauVí dụ: giả sử bạn có các danh sách sau và bạn muốn kết hợp tất cả chúng lại với nhau
>>> first_names = ["Joe", "Jane", "Mark"]
>>> middle_initials = ["A", "B", "C"]
>>> surnames = ["Bloggs", "Doe", "Smith"]
>>> zip[first_names, middle_initials, surnames]
Như bạn có thể thấy kết quả từ hàm
>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
3 như được hiển thị trong đầu ra REPL ở trên là một đối tượng >>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
0. Bạn có thể kiểm tra từng phần tử trong đối tượng bằng cách in nó, vì vậy thay vì chỉ xuất kết quả, hãy chạy nó qua một vòng lặp for, có lẽ đại loại như>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
Nếu bạn muốn bọc kết quả của các bộ vào một danh sách, bạn có thể bọc hàm
>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
3 thành hàm >>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
2 như vậy>>> first_names = ["Joe", "Jane", "Mark"]
>>> middle_initials = ["A", "B", "C"]
>>> surnames = ["Bloggs", "Doe", "Smith"]
>>> list[zip[first_names, middle_initials, surnames]]
[['Joe', 'A', 'Bloggs'], ['Jane', 'B', 'Doe'], ['Mark', 'C', 'Smith']]
Như bạn có thể thấy từ kết quả trên, đầu ra hiện đã đẹp và được nhập gọn gàng vào danh sách có thể được tham chiếu thêm trong mã của bạn
Mặc dù các danh sách này đã được tách ra thành các danh sách riêng của chúng, nhưng nếu danh sách ban đầu là danh sách lồng nhau hai chiều thì sao?
Làm thế nào để bạn nén một danh sách hai chiều trong Python?
Bạn có thể nén tất cả các danh sách trong danh sách hai chiều bằng hàm
>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
3 không?Giả sử bạn có cùng loại dữ liệu nhưng danh sách là hai chiều và có cấu trúc như vậy
>>> my_list = [["Joe", "Jane", "Mark"],
.. ["A", "B", "C"],
.. ["Bloggs", "Doe", "Smith"]]
Nếu bạn nén danh sách hai chiều này, nó sẽ chỉ tạo ra một danh sách các bộ cho mỗi hàng
>>> list[zip[my_list]]
[[['Joe', 'Jane', 'Mark'],], [['A', 'B', 'C'],], [['Bloggs', 'Doe', 'Smith'],]]
Làm cách nào bạn có thể tạo ra kết quả giống như tôi đã làm ở trên khi mỗi danh sách được chứa trong biến riêng của nó?
Cách bạn có thể chia nhỏ danh sách hai chiều là áp dụng toán tử
>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
4 cho biến – toán tử này giải nén nội dung của biến, đây là minh họa đơn giản cho thao tác này________số 8Như bạn có thể thấy từ đầu ra ở trên khi in nội dung của danh sách và sử dụng tham số
>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
5 [dấu phân cách] [được đặt thành dấu phân cách dòng mới >>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
6] để tách từng mục được giải nén khỏi >>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
4 [toán tử dấu hoa thị] Tôi nhận được từng hàng riêng lẻ Việc biết toán tử tiện dụng này và cách nó có thể giúp giải nén từng hàng trong danh sách hai chiều ban đầu sẽ giúp làm cho mỗi hàng hoạt động giống như hàng được chèn riêng lẻ của chính nó vào hàm
>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
3Thử dùng hàm
>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
3 sẽ giống như thế này>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
2Như bạn có thể thấy từ đoạn mã trên, bạn có thể đạt được kết quả chính xác như bình thường bằng cách chuyển từng hàng riêng lẻ vào hàm
>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
3Bạn có thể nén các danh sách không có cùng kích thước không?
Làm cách nào để bạn xử lý việc nén hai hoặc nhiều danh sách trong đó nội dung của một danh sách hoặc tất cả các danh sách không có cùng độ dài?
Nếu bạn có các danh sách có độ dài khác nhau và bạn cố nén tất cả chúng bằng cách sử dụng hàm
>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
3, bạn sẽ nhận được độ dài nhỏ nhất từ việc kết hợp tất cả các phần tử trong danh sách lại với nhauVí dụ: nếu tôi sử dụng các biến giống như trước, nhưng loại bỏ phần tử cuối cùng trong danh sách
>>> first_names = ["Joe", "Jane", "Mark"]
>>> middle_initials = ["A", "B", "C"]
>>> surnames = ["Bloggs", "Doe", "Smith"]
>>> list[zip[first_names, middle_initials, surnames]]
[['Joe', 'A', 'Bloggs'], ['Jane', 'B', 'Doe'], ['Mark', 'C', 'Smith']]
2 thì đầu ra sẽ chỉ là phần tử thứ nhất và thứ hai được kết hợp với nhau, như được thấy ở đây>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
4Do đó, bạn cần lưu ý đến nội dung trong danh sách của mình khi nén chúng lên – nếu nội dung của một danh sách ngắn hơn phần còn lại thì kết quả sẽ là độ dài của danh sách ngắn hơn
Bản tóm tắt
Python cho phép bạn nén hai hoặc nhiều danh sách thành một bằng cách sử dụng hàm tiện dụng
>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
3Một cách dễ dàng để nén các danh sách hai chiều là sử dụng toán tử dấu hoa thị để giải nén từng danh sách riêng lẻ trong danh sách hai chiều ban đầu và cho phép hàm
>>> for item in zip[first_names, middle_initials, surnames]:
.. print[item]
...
['Joe', 'A', 'Bloggs']
['Jane', 'B', 'Doe']
['Mark', 'C', 'Smith']
3 hoạt động trên từng danh sách như thể được chuyển qua dưới dạng các tham số riêng lẻ cho