Trong Python, mục đích của hàm zip[] là lấy các mục có thể lặp lại làm đầu vào và trả về một trình lặp của các bộ dữ liệu. Ví dụ: nếu nhiều lần lặp được truyền, thì mục đầu tiên trong mỗi trình lặp được truyền sẽ được ghép nối với nhau và tương tự như vậy. Nếu không có mục nào có thể lặp lại, chức năng zip của python sẽ trả về một trình vòng lặp trống
Nếu có hai trình lặp với độ dài khác nhau, thì trình lặp có ít phần tử nhất sẽ là độ dài của trình lặp mới
Giả sử chúng ta đã truyền hai lần lặp, một lần lặp chứa năm mục và lần lặp thứ hai chứa bảy mục, sau đó hàm zip[] của python sẽ trả về trình vòng lặp chứa năm bộ
cú pháp
zip[iter1, iter2, iter3 ...]
Thông số
- Python iterables hoặc container [ list, string, tuple, v.v. ]
Giá trị trả về
- Trả về một đối tượng iterator duy nhất
Mã Python để giải thích hoạt động của chức năng zip[]
Thí dụ
# Python code to explain working of zip[] function
# initializing lists
employee = [ "Ram", "Shyam", "Harish", "Ramesh" ]
employee_id = [ 1, 4, 23, 21 ]
salary = [ 40000, 50000, 60000, 70000 ]
# zip[] to create zip object
zipobj = zip[employee, employee_id, salary]
# Converting values to set
zipobj = set[zipobj]
# Print ziped object
print ["The zipped Object: ",zipobj]
đầu ra
The zipped Object: {['Ramesh', 21, 70000], ['Harish', 23, 60000], ['Ram', 1, 40000], [Shyam, 4, 50000]}
Giải trình
Trong ví dụ trên, chúng tôi đã khởi tạo 3 danh sách là nhân viên, employee_id và lương. Sau đó, trong dòng tiếp theo, chúng tôi đã chuyển các danh sách này dưới dạng tham số cho hàm zip[] . Hàm zip[] sau đó trả về một đối tượng có thể lặp lại mà chúng tôi đã lưu trữ trong biến zipobj. Để đọc các mục của zipobj, chúng tôi đã chuyển đổi nó thành tập hợp và sau đó in nó
zip[] với Vòng lặp
Thí dụ
# Python code to explain working of zip[] function with for loop
# initializing lists
employee = [ "Ram", "Sham", "Harish", "Ramesh" ]
employee_id = [ 1, 4, 23, 21 ]
salary = [ 40000, 50000, 60000, 70000 ]
# zip[] to create zip object
zipobj = zip[employee, employee_id, salary]
# print value using for loop
for emp, eid, esal in zipobj:
print ["Employee : ", emp, " ID: ", eid, "Salary: ", esal]
đầu ra
Employee : Ram ID: 1 Salary: 40000 Employee : Sham ID: 4 Salary: 50000 Employee : Harish ID: 23 Salary: 60000 Employee : Ramesh ID: 21 Salary: 70000
Giải trình
Trong ví dụ trên, chúng tôi đã khởi tạo 3 biến emp, eid, esal sẽ giúp chúng tôi lặp qua vòng lặp for. Trong vòng lặp for, chúng tôi đã sử dụng câu lệnh in để in từng mục của zipobj một
zip[] với số lượng phần tử khác nhau trong Iterables
Nếu hàm zip[] chuyển với trình lặp có độ dài khác nhau, thì độ dài đối tượng trả về sẽ được quyết định dựa trên trình lặp nào có ít mục hơn
Thí dụ
# Python code to explain working of zip[] function with different iterator length
# initializing lists
employee = [ "Ram", "Sham", "Harish", "Ramesh" ]
employee_id = [ 1, 4, 23, 21 ]
salary = [ 40000, 50000, 60000 ]
# zip[] to create zip object
zipobj = zip[employee, employee_id, salary]
# print value using for loop
for emp, eid, esal in zipobj:
print ["Employee : ", emp, " ID: ", eid, "Salary: ", esal]
đầu ra
Employee : Ram ID: 1 Salary: 40000 Employee : Sham ID: 4 Salary: 50000 Employee : Harish ID: 23 Salary: 60000
Giải trình
Trong ví dụ trên, chúng tôi đã chuyển ba danh sách, trong đó một trong số chúng có 3 mục và phần còn lại có 4 mục mỗi mục. Trong trường hợp này, đối tượng lặp được trả về sẽ chỉ chứa 3 mục. Điều này là do iterator ngừng lặp lại khi gặp danh sách ngắn nhất.
Giải nén giá trị đã nén bằng hàm zip[] của Python
Trong ví dụ sau đây, chúng tôi sẽ giải nén các giá trị đã nén được sử dụng trong ví dụ trước với sự trợ giúp của hàm zip[]
# Python code to explain working of zip[] function
# initializing lists
employee = [ "Ram", "Sham", "Harish", "Ramesh" ]
employee_id = [ 1, 4, 23, 21 ]
salary = [ 40000, 50000, 60000, 70000 ]
# zip[] to create zip object
zipobj = zip[employee, employee_id, salary]
# Convert zipped bject as set
zipobj = set[zipobj]
# Print Set
print["The zipped Output: ", zipobj]
# Unzipped the values in different list
e_name, e_id, e_salary = zip[*zipobj]
# Print lists
print["Employee Name: ", e_name]
print["Employee ID", e_id]
print["Employee Salary", e_salary]
đầu ra
________số 8Giải trình
Trong ví dụ trên, việc giải nén được thực hiện với sự trợ giúp của toán tử '*'. Giải nén có nghĩa là chuyển đổi các giá trị đã nén sang phiên bản cũ hơn của chúng tôi. e một đối tượng được nén sẽ được chuyển đổi thành danh sách nếu trước đó nó là danh sách.