Tôi đang cố gắng tạo một từ điển 3D bằng python
Tôi đang gặp sự cố khi liên kết các giá trị trong danh sách theo cách tôi muốn.
Đây là mã của tôi:
def NestedDictionary3D(L1, L2):
"""
Yêu cầu: L1 và L2 là danh sách
Sửa đổi: Không có gì
Tác dụng: Tạo từ điển 3D, D, với các khóa của từng mục trong danh sách L1.
Giá trị của mỗi khóa trong D là một từ điển, trong đó
có khóa của từng mục trong danh sách L2 và tương ứng
giá trị của từ điển trống Trả về từ điển mới D.
"""
t1 = bộ (L1)
t2 = bộ (L2)
D = {t1: {t2: {}}}
trả lại D
Đây là đầu ra dự kiến và đầu ra của tôi:
Các tham số đầu vào của trường hợp thử nghiệm:
['cá heo', 'gấu trúc', 'koala'], ['môi trường sống', 'chế độ ăn', 'tuổi thọ']
Giá trị trả về của tôi:
{('cá heo', 'gấu trúc', 'koala'): {('môi trường sống', 'chế độ ăn', 'tuổi thọ'): {}}}
Giá trị trả lại dự kiến:
{'cá heo': {'chế độ ăn uống': {}, 'môi trường sống': {}, 'tuổi thọ': {}}, 'gấu trúc': {'chế độ ăn uống': {}, 'môi trường sống': {}, 'tuổi thọ' : {}}, 'koala': {'chế độ ăn uống': {}, 'môi trường sống': {}, 'tuổi thọ': {}}}
Các tham số đầu vào của trường hợp thử nghiệm:
['Ann Arbor', 'San Francisco', 'Boston'], ['nhà hàng', 'công viên', 'khách sạn']
Giá trị trả về của tôi:
{('Ann Arbor', 'San Francisco', 'Boston'): {('nhà hàng', 'công viên', 'khách sạn'): {}}}
Giá trị trả lại dự kiến:
{'San Francisco': {'khách sạn': {}, 'công viên': {}, 'nhà hàng': {}}, 'Ann Arbor': {'khách sạn': {}, 'công viên': {}, ' nhà hàng': {}}, 'Boston': {'khách sạn': {}, 'công viên': {}, 'nhà hàng': {}}}
Ai đó có thể giải thích những gì tôi đang làm sai?
Cảm ơn!
Để đạt được điều này bạn có thể sử dụng lồng nhau hiểu chính tả sự biểu lộ:
động vật, tài sản = ['cá heo', 'gấu trúc', 'koala'], ['môi trường sống', 'chế độ ăn uống', 'tuổi thọ']
my_dict = {a: {p: {} cho p thuộc tính} cho a ở động vật}
my_dict
Sẽ lưu giá trị:
{'cá heo': {'chế độ ăn uống': {}, 'môi trường sống': {}, 'tuổi thọ': {}},
'gấu trúc': {'chế độ ăn uống': {}, 'môi trường sống': {}, 'tuổi thọ': {}},
'koala': {'chế độ ăn': {}, 'môi trường sống': {}, 'tuổi thọ': {}}}
Do đó, hàm của bạn có thể được viết đơn giản là:
def NestedDictionary3D(L1, L2):
trả về {l1: {l2: {} cho l2 trong L2} cho l1 trong L1}
Bạn không cần phải danh sách
Loại giá trị trong được chuyển đổi thành bộ đồ
.
Tôi là một lập trình viên xuất sắc, rất giỏi!