Duyệt đồng thời các chuỗi tuần tự trong Python
Để duyệt qua nhiều chuỗi tuần tự cùng một lúc,
bạn có thể sử dụng hàm
zip. Khi đó, tất cả các phần tử
của các chuỗi tuần tự sẽ được xuất ra
dưới dạng các bộ dữ liệu (tuple), bao gồm các phần tử có
cùng chỉ mục.
Ví dụ
Giả sử chúng ta có hai danh sách:
lst1 = ['a', 'b', 'c']
lst2 = [1, 2, 3]
Hãy xuất ra các phần tử của chúng theo cặp:
for el in zip(lst1, lst2):
print(el)
Kết quả của mã đã thực hiện:
('a', 1)
('b', 2)
('c', 3)
Ví dụ
Bạn cũng có thể duyệt qua các chuỗi tuần tự
khác kiểu dữ liệu. Hãy đưa một tập hợp (set) và một bộ dữ liệu (tuple) qua vòng lặp
và hàm zip:
st = {'a', 'b', 'c'}
tlp = (1, 2, 3)
for el in zip(st, tlp):
print(el)
Kết quả của mã đã thực hiện:
('a', 1)
('b', 2)
('c', 3)
Ví dụ
Nếu độ dài của một chuỗi tuần tự lớn hơn chuỗi thứ hai, thì chúng sẽ được duyệt theo các phần tử của chuỗi ngắn hơn:
lst1 = ['a', 'b', 'c', 'd', 'e']
lst2 = [1, 2, 3, 4]
for el in zip(lst1, lst2):
print(el)
Kết quả của mã đã thực hiện:
('a', 1)
('b', 2)
('c', 3)
('d', 4)
Ví dụ
Với hàm zip, bạn có thể duyệt qua
ba chuỗi tuần tự. Để làm điều này, trong
tham số của hàm, liệt kê tất cả chúng cách nhau bởi
dấu phẩy:
lst1 = ['a1', 'b1', 'c1']
lst2 = ['a2', 'b2', 'c2']
lst3 = ['a3', 'b3', 'c3']
for el in zip(lst1, lst2, lst3):
print(el)
Kết quả của mã đã thực hiện:
('a1', 'a2', 'a3')
('b1', 'b2', 'b3')
('c1', 'c2', 'c3')
Bài tập thực hành
Cho hai danh sách:
tst1 = [1, 3, 5]
tst2 = [2, 4, 6]
Xuất ra các phần tử của chúng theo cặp dưới dạng bộ dữ liệu.
Cho hai danh sách:
tst1 = ['a', 'b', 'c']
tst2 = ['d', 'e', 'f']
Nhận được từ chúng danh sách sau:
['a', '1', 'b', '2', 'c', '3']
Cho ba danh sách:
tst1 = [11, 12, 13, 14]
tst2 = [21, 22, 23, 24]
tst3 = [31, 32, 33, 34]
Cộng các phần tử tương ứng của các danh sách này và ghi kết quả vào một danh sách mới. Phép cộng sẽ diễn ra theo nguyên tắc sau:
[
11 + 21 + 31,
12 + 22 + 32,
13 + 23 + 33,
14 + 24 + 34,
]