Re: [Tutor] List within Dictionary

2007-06-20 Thread Kent Johnson
pearl jb wrote:
> I wanted to know "How to access the list elements which is in Dictionary" 
> 
> dict = {'John':['ph=919873673','res=91928827737'] , 'William' : 
> ['ph=91983763','res=91837474848'] }
> 
> 
> I want the output to be
> 
> 1. John res=91928827737
> 2. William ph=91983763

You can use dict.items() to iterate over key, value pairs, then access 
the elements of the value list using regular list indexing. I'm not sure 
how you want to select res for John and ph for William so here is an 
example that prints res for both:

In [11]: d = {'John':['ph=919873673','res=91928827737'] , 'William' : 
['ph=91983763','res=91837474848'] }
In [12]: for name, phones in d.items():
: print name, phones[1]

William res=91837474848
John res=91928827737


Note that the ordering of keys is essentially random. If you want the 
list in order by name, you can sort the items:

In [13]: for name, phones in sorted(d.items()): 

 print name, phones[1]

John res=91928827737
William res=91837474848


Using enumerate() and some string formatting will give you a sequence 
number:

In [17]: for i, (name, phones) in enumerate(sorted(d.items())):
 print '%s. %s %s' % (i+1, name, phones[1])

1. John res=91928827737
2. William res=91837474848

Docs:
dict.items(): http://docs.python.org/lib/typesmapping.html#l2h-294
sorted(): http://docs.python.org/lib/built-in-funcs.html#l2h-68
enumerate(): http://docs.python.org/lib/built-in-funcs.html#l2h-24
string formatting: http://docs.python.org/lib/typesseq-strings.html

Two more notes:
- Don't use dict as the name for a dict (or list to name a list, or str 
to name a string) as it shadows the name of the built-in type.
- Please don't send HTML mail to the list - use plain text

Kent
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] List within Dictionary

2007-06-20 Thread pearl jb
I wanted to know "How to access the list elements which is in Dictionary"  

dict = {'John':['ph=919873673','res=91928827737'] , 'William' : 
['ph=91983763','res=91837474848'] }


I want the output to be

1. John res=91928827737
2. William ph=91983763


   
-
 Once upon a time there was 1 GB storage on Yahoo! Mail. Click here for happy 
ending!___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor