[EMAIL PROTECTED] wrote:

(top-post corrected)

-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] n.org]On Behalf Of G. Völkl Sent: Thursday, March 10, 2005 12:19 PM To: python-list@python.org Subject: newbie: dictionary - howto get key value


Hello,

I use a dictionary:

phone = {'mike':10,'sue':8,'john':3}

phone['mike']   --> 10

I want to know who has number 3?

3 -->  'john'

How to get it in the python way ?

how about?

test = 3   #find person with this number
for x in xrange(len(phone.keys())):
    print x
    if phone[phone.keys()[x]] == test:
       print phone.keys()[x]
       break

Being a newbie myself, I'd love a little critique on the above.

0/ does not retrieve all the information (just the first match) 1/ not reusable (hint : make it a function) 2/ does not retrieve the information, just print it 3/ also print some useless informations ('print x') 4/ makes len(phone.keys()) + 1 calls to phone.keys() hint : for key in phone.keys(): if phone[key] == test: print phone[key] or better: for key, value in phone.items(): if value == test: print key

Be kind as
I don't know what else needs to be done in Gerhard's process.

Hope I haven't been to harsh !-)

Of course, we
could put this loop in a call and return the name

yeps.

--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in '[EMAIL PROTECTED]'.split('@')])"
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to