Hàm zip
Hàm zip tạo ra một iterator,
kết hợp các phần tử từ nhiều chuỗi
(danh sách, tuple, tập hợp). Hàm
trả về một iterator, trong đó tất cả các phần tử
của chuỗi thứ nhất và chuỗi thứ hai được ghép
lại với nhau theo thứ tự. Trong tham số của hàm
chúng ta chỉ định tất cả các tuple,
danh sách, tập hợp, v.v. mà chúng ta quan tâm.
Cú pháp
zip(chuỗi thứ nhất, chuỗi thứ hai, v.v.)
Ví dụ
Hãy sử dụng hàm zip để tạo
một tuple mới dựa trên hai tuple ban đầu:
tlp1 = ('a', 'b', 'c')
tlp2 = (1, 2, 3)
res = zip(tlp1, tlp2)
print(tuple(res))
Kết quả thực thi mã:
(('a', 1), ('b', 2), ('c', 3))
Ví dụ
Và bây giờ hãy sử dụng hàm zip
để tạo một tuple mới dựa trên hai danh sách:
lst1 = ['d', 'e', 'f']
lst2 = [4, 5, 6]
res = zip(lst1, lst2)
print(tuple(res))
Kết quả thực thi mã:
(('d', 4), ('e', 5), ('f', 6))
Ví dụ
Hãy tạo một tuple từ hai tập hợp:
st1 = {'a', 'b', 'c'}
st2 = {'d', 'e', 'f'}
res = zip(st1, st2)
print(tuple(res))
Kết quả thực thi mã:
(('a', 'd'), ('c', 'e'), ('b', 'f'))
Ví dụ
Và bây giờ hãy tạo một tuple từ ba tập hợp:
st1 = {'a', 'b', 'c'}
st2 = {'d', 'e', 'f'}
st3 = {1, 2, 3}
res = zip(st1, st2, st3)
print(tuple(res))
Kết quả thực thi mã:
(('c', 'f', 1), ('b', 'd', 2), ('a', 'e', 3))
Ví dụ
Với hàm zip có thể
duyệt qua nhiều đối tượng cùng một lúc.
Hãy thử duyệt qua ba danh sách:
lst1 = [1, 2, 3]
lst2 = [4, 5, 6]
lst3 = [7, 8, 9]
for el1, el2, el3 in zip(lst1, lst2, lst3):
print(el1, el2, el3)
Kết quả thực thi mã:
1 4 7
2 5 8
3 6 9