Computer >> Máy Tính >  >> Lập trình >> Python

Python Zip:Hướng dẫn từng bước

Hàm zip () trong Python chấp nhận các mục có thể lặp lại và hợp nhất chúng thành một bộ dữ liệu duy nhất. Giá trị kết quả là một đối tượng zip lưu trữ các cặp tệp lặp. Bạn có thể chuyển danh sách, bộ giá trị, bộ hoặc từ điển thông qua hàm zip ().


Python có một số hàm tích hợp cho phép người viết mã lặp qua dữ liệu. Một trong những hàm này là Python zip. zip () hàm tạo một trình lặp sẽ hợp nhất các phần tử từ hai hoặc nhiều nguồn dữ liệu thành một.

Trong hướng dẫn này, chúng ta sẽ phân tích các khái niệm cơ bản về Python zip (). Chúng ta cũng sẽ thảo luận về cách lặp qua một tệp zip và cách giải nén một đối tượng đã nén.

Trình làm mới lặp lại Python

Trong Python, chúng tôi sử dụng thuật ngữ i terate để mô tả khi một chương trình đang chạy qua một danh sách. Ví dụ:giả sử bạn có một cho vòng lặp in ra tên của mọi chi nhánh mà một công ty hoạt động. Chúng tôi muốn nói rằng chương trình của chúng tôi đang lặp lại thông qua danh sách tên.

Một có thể lặp lại , mặt khác, là một đối tượng có thể trả về các mục thành viên của nó một cách riêng lẻ. Mảng có thể lặp lại vì bạn có thể in ra từng mục riêng lẻ bằng cách sử dụng for vòng lặp.

Hàm zip trong Python

Hàm zip () kết hợp nội dung của hai hoặc nhiều tệp lặp. zip () trả về một đối tượng zip. Đây là một trình lặp các bộ giá trị trong đó tất cả các giá trị bạn đã chuyển làm đối số được lưu trữ dưới dạng cặp.

Python’s zip () hàm lấy một có thể lặp lại — chẳng hạn như danh sách, tuple, tập hợp hoặc từ điển — làm đối số. Hàm sẽ tạo một danh sách các bộ chứa các phần tử từ mỗi bộ có thể lặp lại mà bạn đã chuyển vào hàm.

Cú pháp của hàm zip () như sau:

81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.

Sinh viên tốt nghiệp bootcamp trung bình dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.

zip(iterable1, iterable2, ...)

Bạn có thể bao gồm nhiều mục lặp tùy thích. Bạn phải chỉ định các tệp lặp mà bạn muốn hợp nhất làm đối số cho hàm zip ().

Phương thức zip () tiếp tục thực thi cho đến khi các đối tượng có thể lặp lại được nén hoàn toàn. Điều này xảy ra khi các mục đã hết. Nói cách khác, phương thức zip () dừng khi tất cả các cặp có thể được tạo.

Ví dụ về zip Python

Giả sử bạn có hai danh sách Python. Một danh sách chứa tên nhân viên và danh sách kia chứa số nhân viên. Bạn muốn hợp nhất cả hai danh sách thành một mảng các bộ giá trị. Điều này sẽ cho phép bạn lưu trữ tên và số của nhân viên song song với nhau.

Chúng tôi có thể sử dụng zip () chức năng hợp nhất hai danh sách của chúng tôi. Đây là một chương trình ví dụ sẽ hợp nhất dữ liệu này:

employee_numbers = [2, 9, 18, 28]
employee_names = ["Candice", "Ava", "Andrew", "Lucas"]

zipped_values = zip(employee_names, employee_numbers)
zipped_list = list(zipped_values)

print(zipped_list)

Hàm zip của chúng tôi trả về như sau:

[('Candice', 2), ('Ava', 9), ('Andrew', 18), ('Lucas', 28)]

Chương trình của chúng tôi đã tạo ra một loạt các mục tuple. Mỗi bộ chứa tên của một nhân viên và số nhân viên tương ứng.

Trên hai dòng đầu tiên của mã, chúng tôi khai báo các biến lưu trữ số nhân viên và tên nhân viên của chúng tôi.

Tiếp theo, chúng tôi thực hiện một zip () chức năng. Hàm này hợp nhất hai danh sách của chúng ta lại với nhau và tạo ra một mảng các bộ giá trị mới.

Chúng tôi chuyển đổi mục zip của chúng tôi thành một danh sách. Điều này là do hàm zip () trả về một đối tượng zip. Chúng ta có thể lặp qua một đối tượng zip. Tuy nhiên, chúng tôi không thể in zip ra bảng điều khiển và xem nội dung của nó ở dạng có thể đọc được. Chúng tôi phải chuyển đổi đối tượng zip của mình thành một danh sách, vì vậy chúng tôi có thể xem nội dung của zip từ bảng điều khiển.

Chúng tôi có thể nói rằng zipped_values ​​ của chúng tôi là một zip () bằng cách thêm mã sau vào chương trình trên của chúng tôi:

print(type(zipped_values))

Mã của chúng tôi trả về lớp được nén sau:

<class 'zip'>

Trong ví dụ trên, chúng tôi đã nén hai mục lại với nhau. Tuy nhiên, nếu chúng tôi có nhiều hơn mà chúng tôi muốn nén, chúng tôi cũng có thể làm điều đó. Thay đổi duy nhất mà chúng tôi sẽ thực hiện là chuyển một danh sách các mục khác vào zip () của chúng tôi chức năng.

Looping Over Lặp lại bằng cách sử dụng zip trong Python

Hàm zip () trả về một trình vòng lặp. Điều này có nghĩa là chúng tôi có thể xem nội dung của từng mục được nén riêng lẻ.

Làm việc với nhiều mục lặp là một trong những trường hợp sử dụng phổ biến nhất cho zip () hàm trong Python. Ví dụ:nếu bạn muốn xem qua nhiều danh sách, bạn có thể muốn sử dụng zip () chức năng.

Hãy sử dụng hàm zip () để lặp lại cả danh sách nhân viên và danh sách nhân viên của chúng tôi:

employee_numbers = [2, 9, 18, 28]
employee_names = ["Candice", "Ava", "Andrew", "Lucas"]

for name, number in zip(employee_names, employee_numbers):
	print(name, number)

Mã của chúng tôi trả về như sau:

Candice 2
Ava 9
Andrew 18
Lucas 28

Chương trình của chúng tôi lặp lại danh sách các bộ giá trị zip () trả về và chia chúng thành hai giá trị:tên và số.

Điều này giúp chúng tôi dễ dàng lặp qua nhiều đối tượng có thể lặp lại cùng một lúc. Bây giờ chúng ta có thể xem tên từng nhân viên cùng với số nhân viên tương ứng của họ. Nếu muốn, chúng ta có thể sử dụng điều này để lặp qua ba hoặc nhiều đối tượng có thể lặp lại.

Giải nén các giá trị trong Python

Trong mã của chúng tôi, chúng tôi đã nén nhiều loại dữ liệu khác nhau. Nhưng làm thế nào để chúng tôi khôi phục dữ liệu về dạng trước đó của nó? Nếu bạn có danh sách các bộ giá trị — hoặc các giá trị được nén — mà bạn muốn chia, bạn có thể sử dụng zip () toán tử giải nén chức năng. Đây là dấu hoa thị * được sử dụng cùng với zip () chức năng.

Đây là một ví dụ về zip () giải nén toán tử đang hoạt động:

employees_zipped = [('Candice', 2), ('Ava', 9), ('Andrew', 18), ('Lucas', 28)]
employee_names, employee_numbers = zip(*employees_zipped)

print(employee_names)
print(employee_numbers)

Mã của chúng tôi trả về kết quả sau:

('Candice', 'Ava', 'Andrew', 'Lucas')
(2, 9, 18, 28)

Trên dòng đầu tiên của mã của chúng tôi, chúng tôi xác định một biến bao gồm danh sách các bộ giá trị. Sau đó, trên dòng tiếp theo, chúng tôi xác định hai biến. Các biến này là tên_nhân_vân staff_numbers. Chúng tôi chỉ định các giá trị biến này từ hàm giải nén của chúng tôi.

Hàm giải nén là một hàm zip sử dụng worker_zipped của chúng tôi biến giải nén zip bằng cách sử dụng toán tử giải nén * . Trong ví dụ trên, chúng tôi in ra hai biến mới chứa tên nhân viên và số nhân viên của chúng tôi.

Kết luận

Hàm zip () nhận các đối tượng có thể lặp lại làm đầu vào và kết hợp chúng thành một đối tượng zip (). Đối tượng zip () này hiển thị các giá trị từ mỗi đầu vào có thể lặp lại song song với nhau. Điều này có thể hữu ích nếu bạn có hai hoặc nhiều mảng hoặc bộ dữ liệu mà bạn muốn hợp nhất thành một.

Chúng tôi đã thảo luận về cách sử dụng zip () chức năng với 0 hoặc một đầu vào. Bạn có thể sử dụng zip () để lặp qua các tệp lặp lại và bạn có thể giải nén dữ liệu mà bạn đã nén. Giờ đây, bạn đang trên đường trở thành bậc thầy về Python zip () chức năng.

Đọc hướng dẫn Cách viết mã bằng Python của chúng tôi để biết thêm các mẹo và lời khuyên về cách học ngôn ngữ phát triển phần mềm Python.