2

Not sure if people refer to slightly older questions but Accessing elements of python dictionary

Consider a dict like

dict = {
        'Apple': {'American':'16', 'Mexican':10, 'Chinese':5},
        'Grapes':{'Arabian':'25','Indian':'20'} 
       }

How do I access for instance a particular element of this dictionary ? for instance I would like to print first element after some formatting the first element of Apple which in our case is 'American' only ?

Additional information The above data structure was created by parsing an input file in a python function. Once created however it remains the same for that run.

I am using this data structure in my function.

So if the file changes, the next time this application is run the contents of file are different and hence the contents of this data structure will be different but the format would be same. So you see I in my function I don't know that the first element in Apple is 'American' or anything else so I can't directly use 'American' as a key.

In short as an input I have a variable v which may have value 'apple' , 'grape' or any other and the above created data structure as an input to my function.

If variable is present in above Data Structure Dict,

Thus if variable==apple or grapes then : then I need to get it's corresponding associated elements and print them in a specific format like this ;

Group Apple
   Item "American" Value 16
   Item "Mexican" Value 10

Group Grapes
   Item "Arabian" Value 25
   Item "Indian" Value 20

Group value3 .. 
   and so on

If variable == 'pumpkin' we search for it in the above Dict data structure and since it pumpkin is not present , we dont print anything

etc..

I hope I am able to explain what my want. Note: It is better that this be merged with above question and so I can accept answers too

Community
  • 1
  • 1
alessandra
  • 23
  • 1
  • 3
  • Python dictionary's aren't ordered. What do you mean by first element? – dting Mar 23 '11 at 19:50
  • 1
    Most fundamentally, you should understand that a `dict` isn't ordered, so the phrase "the first element of a dict" isn't meaningful. To get the keys and values from a dict in an ordered way, you should use `dict.keys()`, `dict.values()` or `dict.items()`. But there's no telling what order they will show up in. – senderle Mar 23 '11 at 19:52
  • Okay Kriegar may be 'first' is not the appropriate term . what I meant if my variable is present in dict, then access its elements. for instance for variable v in dict: – alessandra Mar 23 '11 at 19:55
  • 1
    in that case, @pelya's answer looks like what you're after. However, let me stress that you should not call your dictionary "dict", since that is a python class name that you are now masking. – juanchopanza Mar 23 '11 at 20:06

1 Answers1

3
for i in dict.keys():
    print "Group", i
    for j in dict[i].keys():
        print "Item", j, "Value", dict[i][j]
pelya
  • 4,326
  • 2
  • 24
  • 23