Python 询问字典中两个值中的一个

Python 询问字典中两个值中的一个,python,dictionary,Python,Dictionary,如果我有一个字典,每个键有两个值,我如何选择一个值 例如: dict = {'Banana' : {'price': 7, 'Color' : "yellow"}, 'Apple' : {'price' : 8, 'Color': "green"}, 'Orange' :{'price' : 6, 'Color': "orange"}} 当我想知道每种水果的价格时,我怎么能这样问呢 for i in range (len(dict)): dict[i][0] 这是正确的解决方案吗?对循

如果我有一个字典,每个键有两个值,我如何选择一个值

例如:

dict = {'Banana' : {'price': 7, 'Color' : "yellow"},
'Apple' : {'price' : 8, 'Color': "green"}, 'Orange' :{'price' : 6, 'Color': "orange"}}
当我想知道每种水果的价格时,我怎么能这样问呢

for i in range (len(dict)):
   dict[i][0]

这是正确的解决方案吗?

对循环使用不同的
,我怀疑范围内的
是否有效:

for fruit, data in dict.iteritems():
    print(fruit + " costs " + str(data['price']))

编辑以回答评论:

对于范围内的i(len(d)):d.keys[i]==d.keys[i+1]:
对于范围内的i.keys:d[i]==d[i+1]
不起作用,您必须再写一点:

d = dict.keys()
for i in range(len(d)):
    if i+1 < len(d) and d[i] == d[i+1]:
        #do stuff
d=dict.keys()
对于范围内的i(len(d)):
如果i+1
这应该可以:

for fruit, info in dict.iteritems():
    print "%s: Colour %s - Price %d" % (fruit, info['Color'], info['price'])

我完全同意其他答案。但如果您经常处理数据,我建议您使用“”库

对于您的情况,只需将以下代码用于pandas:

>>>import pandas
>>>df = pandas.DataFrame(dict).transopose()
Out:          
              Color price
     Apple    green     8
     Banana  yellow     7
     Orange  orange     6

>>>df['Color']
Out:
      Apple      green
      Banana    yellow
      Orange    orange
      Name: Color, dtype: object

只需在关键点上迭代

 >>> for i in dict.keys():
...     print i, dict[i]['price']
... 
Orange 6
Banana 7
Apple 8
另一个选择是和


你是说d中的i是这样的
[d[i]['price']
?字典是无序的,所以你不能通过数字访问值。条目只能通过键访问。不要使用
dict
作为变量名,它会隐藏内置函数
dict
。谢谢您的回答!我仍然有一个关于“范围内”的问题:我不能写下面这样的东西吗对于范围内的i(len(d)):d.keys[i]==d.keys[i+1]:`或者我必须写这样的东西:`对于范围内的i.keys:d[i]==d[i+1]`
keys
是一个函数,你需要这些参数
d[i]
仅当
i
是字典中的一个键时才起作用,与
i+1
相同。
>>> d = {'Banana' : {'price': 7, 'Color' : "yellow"},
... 'Apple' : {'price' : 8, 'Color': "green"}, 'Orange' :{'price' : 6, 'Color': "orange"}}
>>> [i['price'] for i in d.itervalues()]
[6, 7, 8]