Python zip ()

Hàm zip () nhận các tệp lặp (có thể bằng 0 hoặc nhiều hơn), tổng hợp chúng trong một bộ và trả về.

Cú pháp của zip()hàm là:

 zip (* lặp lại)

Tham số zip ()

Tham số Sự miêu tả
iterables có thể là các tệp lặp được tích hợp sẵn (như: list, string, dict) hoặc các tệp lặp do người dùng xác định

Đề xuất đọc: Trình lặp lại Python, __iter__ và __next__

Giá trị trả lại từ zip ()

Các zip() chức năng trả về một iterator của các bộ dựa trên các đối tượng iterable.

  • Nếu chúng tôi không truyền bất kỳ tham số nào, zip()trả về một trình lặp trống
  • Nếu một bộ lặp được chuyển qua, zip()trả về một bộ lặp gồm các bộ với mỗi bộ chỉ có một phần tử.
  • Nếu nhiều đoạn lặp được chuyển, zip()trả về một trình lặp các bộ giá trị với mỗi bộ có các phần tử từ tất cả các đoạn lặp.
    Giả sử, hai tệp lặp được chuyển đến zip(); một tệp có thể lặp lại chứa ba và tệp khác chứa năm phần tử. Sau đó, trình lặp được trả về sẽ chứa ba bộ giá trị. Đó là vì trình lặp dừng khi trình lặp ngắn nhất đã hết.

Ví dụ 1: Python zip ()

 number_list = (1, 2, 3) str_list = ('one', 'two', 'three') # No iterables are passed result = zip() # Converting iterator to list result_list = list(result) print(result_list) # Two iterables are passed result = zip(number_list, str_list) # Converting iterator to set result_set = set(result) print(result_set)

Đầu ra

 () ((2, 'hai'), (3, 'ba'), (1, 'một'))

Ví dụ 2: Số phần tử có thể lặp lại khác nhau

 numbersList = (1, 2, 3) str_list = ('one', 'two') numbers_tuple = ('ONE', 'TWO', 'THREE', 'FOUR') # Notice, the size of numbersList and numbers_tuple is different result = zip(numbersList, numbers_tuple) # Converting to set result_set = set(result) print(result_set) result = zip(numbersList, str_list, numbers_tuple) # Converting to set result_set = set(result) print(result_set)

Đầu ra

 ((2, 'TWO'), (3, 'THREE'), (1, 'ONE'))) ((2, 'hai', 'TWO'), (1, 'một', 'MỘT'))

Các * nhà điều hành có thể được sử dụng kết hợp với zip()giải nén danh sách.

 zip (* zipList)

Ví dụ 3: Giải nén Giá trị bằng zip ()

 coordinate = ('x', 'y', 'z') value = (3, 4, 5) result = zip(coordinate, value) result_list = list(result) print(result_list) c, v = zip(*result_list) print('c =', c) print('v =', v)

Đầu ra

 (('x', 3), ('y', 4), ('z', 5)) c = ('x', 'y', 'z') v = (3, 4, 5) 

thú vị bài viết...