首页 > 解决方案 > 如何访问嵌套字典中的特定键?

问题描述

 itemdetails = {101: { 'Item Name':'Tshirt', 'Price':150.00, 'Stock':20},
                102: { 'Item Name':'Shirt', 'Price':300.00, 'Stock':20},
                103: { 'Item Name':'Shorts', 'Price':450.00, 'Stock':20},
                104: { 'Item Name':'Trousers', 'Price':750.00, 'Stock':20}}


 option = str(input("Press [C] for Item Code , [N] for Item Name: "))
 if option=='n':
         itemname=(input("Enter Item name: "))
         print(itemdetails[itemname]) #====> how to access ???
 else:
         itemcode=int(input("Enter Item code: "))

         print(itemdetails[itemcode])

#当我输入 itemname 时,我希望它列出该特定项目名称的整个子字典,例如如果我输入 Tshirt,我想输出 =====> 101: { 'Item Name':'Tshirt', '价格':150.00,'库存':20}

那可能吗?

标签: pythondictionarynested

解决方案


尝试这个:

item = 'Tshirt'
print([{k:v} for k,v in itemdetails.items() if v['Item Name'] == item][0])

输出

{101: {'Item Name': 'Tshirt', 'Price': 150.0, 'Stock': 20}}

-- 要打印带 2 位小数的价格,您需要从字典中提取值并打印。

item = 'Tshirt'
x =[{k:v} for k,v in itemdetails.items() if v['Item Name'] == item][0]
print(x)
price = [v for v in x.values()][0]['Price']
print('Price: {:.2f}'.format(price))

输出

{101: {'Item Name': 'Tshirt', 'Price': 150.0, 'Stock': 20}}
Price: 150.00

推荐阅读