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]