如何制作具有多个键和值的多维词典,以及如何打印其键和值?
从此格式:
main_dictionary= { Mainkey: {keyA: value
keyB: value
keyC: value
}}
我尝试这样做,但是它给制造商带来了错误。这是我的代码
car_dict[manufacturer] [type]= [( sedan, hatchback, sports)]
这是我的错误:
File "E:/Programming Study/testupdate.py", line 19, in campany
car_dict[manufacturer] [type]= [( sedan, hatchback, sports)]
KeyError: 'Nissan'
我的打印代码是:
for manufacuted_by, type,sedan,hatchback, sports in cabuyao_dict[bgy]:
print("Manufacturer Name:", manufacuted_by)
print('-' * 120)
print("Car type:", type)
print("Sedan:", sedan)
print("Hatchback:", hatchback)
print("Sports:", sports)
谢谢!我是Python新手。
[我认为您对dict
的工作方式以及如何“回调”其中的值有些误解。
让我们举两个例子说明如何创建数据结构:
car_dict = {}
car_dict["Nissan"] = {"types": ["sedan", "hatchback", "sports"]}
print(car_dict) # Output: {'Nissan': {'types': ['sedan', 'hatchback', 'sports']}}
from collections import defaultdict
car_dict2 = defaultdict(dict)
car_dict2["Nissan"]["types"] = ["sedan", "hatchback", "sports"]
print(car_dict2) # Output: defaultdict(<class 'dict'>, {'Nissan': {'types': ['sedan', 'hatchback', 'sports']}})
在以上两个示例中,我首先创建一个字典,然后在添加要包含的值之后在该行上。在第一个示例中,我给car_dict
和key
"Nissan"
并将其值设置为包含一些值的新字典。
[在第二个示例中,我使用defaultdict(dict)
,其基本逻辑是“如果没有为value
赋予key
,则使用工厂(dict
)为其创建一个value
。] >
您能看到两种不同方法内部如何初始化值的区别吗?
[在代码中调用car_dict[manufacturer][type]
时,尚未启动car_dict["Nissan"] = value
,因此,当您尝试检索它时,car_dict
返回了KeyError
。
关于打印值,您可以执行以下操作:
for key in car_dict: manufacturer = key car_types = car_dict[key]["types"] print(f"The manufacturer '{manufacturer}' has the following types:") for t in car_types: print(t)
输出:
默认情况下包含在其中的键。这意味着我们必须在循环本身内部检索The manufacturer 'Nissan' has the following types: sedan hatchback sports
循环遍历
dict
时,您循环遍历only
key
的值,才能正确print
的值。也作为旁注:您应该避免使用诸如type
之类的内置名称作为变量名称,因为那样您会覆盖该函数的名称空间,将来在进行比较时可能会遇到一些问题类型的变量。]>