python - 如何访问嵌套字典中的特定键?
问题描述
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}
那可能吗?
解决方案
尝试这个:
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
推荐阅读
- d3.js - 为什么 Cytoscape.js 会阻止跨域图像请求,但 d3.js 不会?
- r - 试图将我的头围绕索引到一个小标题列表中
- angular - 如何为通用组件提供更具体的组件以在 Angular 7 中进行渲染
- c++ - 如何获得对 range-v3 视图的基础向量条目的写访问权限并将另一个视图的值分配给它?
- javascript - 放
- 值 id 到值,但在输入中显示 li 文本
- vuejs2 - Vue - 从 axios 响应中传递子组件的数据
- android - 约束布局在 API 22 中异常工作
- android - 如何修复清单合并失败并出现多个错误,请参阅日志?
- firebase - Firestore 索引限制
- android - 无法解析(getsupportfragmentmanager,java.lang.string)