Các hàm zip() của Python là gì?

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ố 8

Giả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.  

Chức năng zip hoạt động như thế nào?

hàm zip[] . Và đó là cách chức năng zip[] hoạt động. Nó tập hợp các phần tử của cùng một chỉ mục từ nhiều đối tượng có thể lặp lại thành các phần tử của cùng một bộ dữ liệu . Hàm zip[] nhận các iterables làm đối số, chẳng hạn như danh sách, tệp, bộ dữ liệu, bộ, v.v.

Vai trò của toán tử * trong hàm zip[] là gì?

Về cơ bản, nó chuyển nội dung của danh sách dưới dạng đối số

Chủ Đề