gpt4 book ai didi

python - 在 Python 2.7 中创建嵌套 3D 字典

转载 作者:太空宇宙 更新时间:2023-11-04 03:01:05 25 4
gpt4 key购买 nike

我正在尝试用 python 制作 3D 字典

我在按照我希望的方式关联列表中的值时遇到问题。

这是我的代码:

def nestedDictionary3D(L1, L2):
"""
Requires: L1 and L2 are lists
Modifies: Nothing
Effects: Creates a 3D dictionary, D, with keys of each item of list L1.
The value for each key in D is a dictionary, which
has keys of each item of list L2 and corresponding
values of empty dictionaries. Returns the new dictionary D.
"""
t1 = tuple(L1)
t2 = tuple(L2)
D = {t1: {t2: {}}}
return D

这是预期的输出和我的输出:

测试用例输入参数:

['dolphin', 'panda', 'koala'], ['habitat', 'diet', 'lifespan']

我的返回值:

{('dolphin', 'panda', 'koala'): {('habitat', 'diet', 'lifespan'): {}}}

预期返回值:

{'dolphin': {'diet': {}, 'habitat': {}, 'lifespan': {}}, 'panda': {'diet': {}, 'habitat': {}, 'lifespan': {}}, 'koala': {'diet': {}, 'habitat': {}, 'lifespan': {}}}

测试用例输入参数:

['Ann Arbor', 'San Francisco', 'Boston'], ['restaurants', 'parks', 'hotels']

我的返回值:

{('Ann Arbor', 'San Francisco', 'Boston'): {('restaurants', 'parks', 'hotels'): {}}}

预期返回值:

{'San Francisco': {'hotels': {}, 'parks': {}, 'restaurants': {}}, 'Ann Arbor': {'hotels': {}, 'parks': {}, 'restaurants': {}}, 'Boston': {'hotels': {}, 'parks': {}, 'restaurants': {}}}

有人可以解释我做错了什么吗?

谢谢!

最佳答案

为了实现这一点,您可以使用嵌套的 dict comprehension 表达式:

animal, property = ['dolphin', 'panda', 'koala'], ['habitat', 'diet', 'lifespan']

my_dict = {a: {p: {} for p in property} for a in animal}

my_dict 将保存值:

{'dolphin': {'diet': {}, 'habitat': {}, 'lifespan': {}}, 
'panda': {'diet': {}, 'habitat': {}, 'lifespan': {}},
'koala': {'diet': {}, 'habitat': {}, 'lifespan': {}}}

因此,您的函数可以简单地写成:

def nestedDictionary3D(L1, L2):
return {l1: {l2: {} for l2 in L2} for l1 in L1}

您不需要将 list 中的值类型转换为 tuple

关于python - 在 Python 2.7 中创建嵌套 3D 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40878303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com