Chuyển đổi loại chứa dữ liệu từ loại này sang loại khác là nhu cầu rất thường xuyên trong Python. Bài viết này trình bày cách tạo tuple từ các cặp khóa giá trị hiện diện trong từ điển. Mỗi cặp khóa giá trị trở thành một tuple. Vì vậy, danh sách cuối cùng là danh sách các phần tử là tuple.
Sử dụng items()
Ta dùng phương thức items của từ điển cho phép lặp qua từng cặp khóa giá trị. Sau đó dùng vòng lặp for để đóng gói các giá trị đó vào tuple. Ta đặt tất cả các tuple này vào danh sách cuối cùng.
Ví dụ
dictA = {'Mon': '2 pm', 'Tue': '1 pm', 'Fri': '3 pm'} # Sử dụng items() res = [(k, v) for k, v in dictA.items()] # Kết quả print(res)Kết quả
Chạy mã trên cho kết quả sau −
[('Mon', '2 pm'), ('Tue', '1 pm'), ('Fri', '3 pm')]Sử dụng zip
Cách khác là dùng hàm zip. Hàm zip sẽ ghép cặp khóa và giá trị thành tuple và sau đó chuyển toàn bộ kết quả thành danh sách bằng hàm list.
Ví dụ
dictA = {'Mon': '2 pm', 'Tue': '1 pm', 'Fri': '3 pm'} # Sử dụng items() res = list(zip(dictA.keys(), dictA.values())) # Kết quả print(res)Kết quả
Chạy mã trên cho kết quả sau −
[('Mon', '2 pm'), ('Tue', '1 pm'), ('Fri', '3 pm')]Sử dụng append
Hàm append() có thể thêm kết quả vào danh sách sau khi lấy cặp giá trị tạo tuple. Ta lặp qua vòng lặp for để lấy kết quả cuối cùng.
Ví dụ
dictA = {'Mon': '2 pm', 'Tue': '1 pm', 'Fri': '3 pm'} # Khởi tạo danh sách rỗng res=[] # Thêm vào res for i in dictA: tpl = (i, dictA[i]) res.append(tpl) # Kết quả print(res)Kết quả
Chạy mã trên cho kết quả sau −
[('Mon', '2 pm'), ('Tue', '1 pm'), ('Fri', '3 pm')]