On Sep 1, 1:45 pm, Bruno Desthuilliers <bruno. [EMAIL PROTECTED]> wrote: > lee a écrit : > > > hi, > > i have a dictionary as follows : > > kev : {'phno': ['dgsd', 'gsdg', 'dfsdf', 'g'], 'email': ['dg', > > 'sgsd', 'sdfsdf', 'gdf'], 'name': ['ds', 'dsg', 'dsfds', 'fgdf'], > > 'address': ['sdg', 'dsgsdg', 'sdf', 'dfg']} > > > if user is enters the 3rd item of key phno, > > ie "dfsdf" in my dict, > > how can i find it is the third item in the internal list of phno of > > that dictionary? > > It's quite simple (hint : read the FineManual(tm) for dict.items() and > list.index()), but 1/totally inefficient and 2/not garanteed to yield a > single value (what if 'dfsdf' happens to be also the 4th item of the > list bound to key 'address' ?). > > May I suggest you rethink your data structure instead ? What you have > here is obviously a collection of 'phno/email/name/address'records. > These records shouldn't be split across different objects. Assuming > 'phno' is a unique identifier for each record, a better data structure > would be: > > records = { > 'dgsd' : {'email': 'dg', 'name' : 'ds', 'address' : 'sdg'}, > 'gsdg' : {'email': 'sgsd', 'name':'ds', 'address' : 'dsgsdg'}, > # etc > > } > > This way, the lookup is as simple and efficient as possible. > > My 2 cents....
hi, i agree with u, my data strusture is not efficient. but all the records,viz...name,phno, email,address are all generated at runtime , when the user enters them. so how can i design my datastructure in that case? -- http://mail.python.org/mailman/listinfo/python-list