Hàm Zip là gì ?
Hàm zip()
trong Python là một hàm xây dựng sẵn cho phép kết hợp các phần tử từ nhiều iterable (list, tuple, set, v.v.) thành các cặp và trả về một iterator các cặp đó.
Cú pháp: zip(iterable1, iterable2, iterable3, ...)
Ví dụ:
a = [1, 2, 3]
b = ['a', 'b', 'c']
c = (True, False, True)
zipped = zip(a, b, c)
print(list(zipped))
# Output: [(1, 'a', True), (2, 'b', False), (3, 'c', True)]
Ở ví dụ trên, chúng ta đã sử dụng hàm zip()
để kết hợp các phần tử từ ba iterable là a
, b
và c
thành các cặp. Hàm zip()
đã trả về một iterator các cặp này, và chúng ta đã chuyển nó thành một danh sách bằng cách sử dụng hàm list()
.
Chú ý rằng, nếu các iterable có độ dài khác nhau, kết quả của hàm zip()
sẽ chỉ bao gồm số cặp bằng độ dài của iterable ngắn nhất. Điều này có nghĩa là các phần tử thừa của các iterable dài hơn sẽ bị bỏ qua trong kết quả cuối cùng.
Một vài ví dụ về hàm Zip Python
1 : Kết hợp các phần tử của hai danh sách để tạo thành các cặp
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
pairs = zip(list1, list2)
print(list(pairs))
# Output: [(1, 'a'), (2, 'b'), (3, 'c')]
Kết quả khi kết hợp các phần tử
2 : Tạo ra một từ điển từ hai danh sách, trong đó các phần tử của danh sách đầu tiên là các khóa và các phần tử của danh sách thứ hai là các giá trị:
keys = ['a', 'b', 'c']
values = [1, 2, 3]
dictionary = dict(zip(keys, values))
print(dictionary)
# Output: {'a': 1, 'b': 2, 'c': 3}
3 : Sử dụng hàm zip()
để duyệt qua các phần tử của hai danh sách đồng thời:
list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]
for x, y in zip(list1, list2):
print(x, y)
# Output:
# a 1
# b 2
# c 3
4. Kết hợp nhiều danh sách khác nhau để tạo ra các cặp:
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
list3 = [True, False, True]
pairs = zip(list1, list2, list3)
print(list(pairs))
# Output: [(1, 'a', True), (2, 'b', False), (3, 'c', True)]
5 : Tạo ra một danh sách các tuple từ các danh sách khác nhau:
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
list3 = [True, False, True]
result = [(x, y, z) for x, y, z in zip(list1, list2, list3)]
print(result)
# Output: [(1, 'a', True), (2, 'b', False), (3, 'c', True)]
Chú ý rằng, trong ví dụ thứ 4 và thứ 5, hàm zip()
có thể kết hợp các phần tử từ nhiều iterable với nhau để tạo ra các cặp hoặc các tuple có độ dài tùy ý.