我有以下词典:
inicio=[
{"market":"oranges", "Valor":104.58},
{"market":"apples","Valor":42.55}
]
如果密钥42.55
的值为market
,我想知道是否有可能获得值apples
。
我正在尝试这样的事情:
for d in inicio:
if key['market']='apples':
print(d['Valor'])
很抱歉,我没有提供更多示例,但我对处理词典并不确定还有什么可以尝试。
答案 0 :(得分:2)
在您的示例中d
是您要查找的词典:
for d in inicio:
if d['market']=='apples':
print(d['Valor'])
并使用等于运算符(==
)而不是赋值(=
)
答案 1 :(得分:0)
使用此代码
inicio=[
{"market":"oranges", "Valor":104.58},
{"market":"apples","Valor":42.55}
]
print inicio[1]['Valor']
如果您有许多与市场相同的苹果项目,则迭代列表并检查该键是否等于苹果,然后是值。 检查此代码。
for dictionary in inicio:
if dictionary['market'] == 'apples':
print(dictionary['Valor'])
答案 2 :(得分:0)
您的代码有效。只需在此行中将“=”替换为“==”:
if d['market'] =='apples':
答案 3 :(得分:0)
如果您只需要查询一次,那么您提供的迭代逻辑就可以了。这里可以应用一个优化 -
for d in inicio:
if d['market']=='apples':
print(d['Valor'])
break # assuming you only need 1 value
但是,如果您需要再次重新运行此逻辑,我建议您可以迭代一次并创建值的映射。
最终结果可能变得像{'apples' : 42.55, 'oranges': 104.58}
再假设一个市场只有一个勇气。
另一方面,如果每个市场都有很多价值,你可以迭代一次并创建一个类似的结构
{'apples' : [42.55, 99.99], 'oranges': [104.58, 99.22]}
希望它有所帮助。