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 từ điển khi nhiều danh sách được cho. Thách thức là kết hợp tất cả các danh sách này để tạo một từ điển chứa tất cả các giá trị này theo định dạng khóa giá trị.
Sử dụng zip
Hàm zip có thể dùng để kết hợp giá trị của các danh sách khác nhau như dưới đây. Trong ví dụ dưới đây, ta lấy ba danh sách làm đầu vào và kết hợp chúng thành một từ điển duy nhất. Một danh sách cung cấp khóa cho từ điển, hai danh sách kia giữ trường giá trị cho mỗi khóa.
Ví dụ
key_list = [1, 2,3] day_list = ['Friday', 'Saturday','Sunday'] fruit_list = ['Apple','Banana','Grape'] # Các danh sách cho trước print("Danh sách khóa cho trước : " + str(key_list)) print("Danh sách ngày cho trước : " + str(day_list)) print("Danh sách trái cây cho trước : " + str(fruit_list)) # Tạo từ điển res = {key: {'Day': day, 'Fruit': fruit} for key, day, fruit in zip(key_list, day_list, fruit_list)} # Kết quả print("Từ điển cuối cùng : \n" ,res)Kết quả
Chạy mã trên cho kết quả sau −
Danh sách khóa cho trước : [1, 2, 3] Danh sách ngày cho trước : ['Friday', 'Saturday', 'Sunday'] Danh sách trái cây cho trước : ['Apple', 'Banana', 'Grape'] Từ điển cuối cùng : {1: {'Day': 'Friday', 'Fruit': 'Apple'}, 2: {'Day': 'Saturday', 'Fruit': 'Banana'}, 3: {'Day': 'Sunday', 'Fruit': 'Grape'}}Sử dụng enumerate
Hàm enumerate thêm bộ đếm làm khóa của đối tượng enumerate. Vì vậy, trong trường hợp của ta, ta sẽ cung cấp key_list làm tham số cho
Ví dụ
key_list = [1, 2,3] day_list = ['Friday', 'Saturday','Sunday'] fruit_list = ['Apple','Banana','Grape'] # Các danh sách cho trước print("Danh sách khóa cho trước : " + str(key_list)) print("Danh sách ngày cho trước : " + str(day_list)) print("Danh sách trái cây cho trước : " + str(fruit_list)) # Tạo từ điển res = {val : {"Day": day_list[key], "age": fruit_list[key]} for key, val in enumerate(key_list)} # Kết quả print("Từ điển cuối cùng : \n" ,res)Kết quả
Chạy mã trên cho kết quả sau −
Danh sách khóa cho trước : [1, 2, 3] Danh sách ngày cho trước : ['Friday', 'Saturday', 'Sunday'] Danh sách trái cây cho trước : ['Apple', 'Banana', 'Grape'] Từ điển cuối cùng : {1: {'Day': 'Friday', 'age': 'Apple'}, 2: {'Day': 'Saturday', 'age': 'Banana'}, 3: {'Day': 'Sunday', 'age': 'Grape'}}