Phân tích dữ liệu đôi khi dùng cấu trúc kết hợp: list chứa tuple. Bài viết trình bày cách kết hợp mỗi phần tử tuple với phần tử khác cho trước, tạo list tuple combination.
Sử dụng vòng lặp for
Tạo vòng lặp for tạo cặp phần tử bằng cách lấy từng phần tử của tuple và lặp qua phần tử trong list.
Ví dụ
Alist = [([2, 8, 9], 'Mon'), ([7, 5, 6], 'Wed')] # List of tuple cho trước
print("List of tuples : \n", Alist)
# Kết hợp tuple trong list of tuples
res = [(t1, t2) for i, t2 in Alist for t1 in i] # In kết quả
print("The list tuple combination : \n", res)
Kết quả
Chạy đoạn mã trên cho kết quả sau:
List of tuples : [([2, 8, 9], 'Mon'), ([7, 5, 6], 'Wed')] The list tuple combination : [(2, 'Mon'), (8, 'Mon'), (9, 'Mon'), (7, 'Wed'), (5, 'Wed'), (6, 'Wed')]
Sử dụng product
itertools.product tạo tích Descartes của tham số. Thiết kế vòng lặp qua từng phần tử tuple tạo cặp với phần tử không phải list trong tuple.
Ví dụ
from itertools import product
Alist = [([2, 8, 9], 'Mon'), ([7, 5, 6], 'Wed')] # List of tuple cho trước
print("List of tuples : \n", Alist)
# Kết hợp tuple trong list of tuples
res = [x for i, j in Alist for x in product(i, [j])] # In kết quả
print("The list tuple combination : \n", res)
Kết quả
Chạy đoạn mã trên cho kết quả sau:
List of tuples : [([2, 8, 9], 'Mon'), ([7, 5, 6], 'Wed')] The list tuple combination : [(2, 'Mon'), (8, 'Mon'), (9, 'Mon'), (7, 'Wed'), (5, 'Wed'), (6, 'Wed')]