Problem with List of List

Kirt moqtar at gmail.com
Sat Aug 26 03:23:26 EDT 2006


Paul Rubin wrote:
> "Kirt" <moqtar at gmail.com> writes:
> > Actually here in my code  ['1', 'a', '6'], ['1', 'b', '6'], ['1', 'c',
> > '6'] means:
> >   1==> Directory name;
> >   a,b,c,d=== Filename
> >   6 ==> modified time
> >
> > So i want the out put like:
> >   Directory name: 1
> >   Filename:a
> >   modified time:6
>
> Try writing the code in a style with fewer side effects.  I like using
> itertools.groupby for this type of thing (not exactly tested):
>
>     from itertools import groupby
>
>     List=[['1', 'a', '6'], ['1', 'b', '6'], ['1', 'c', '6'],
>           ['1', 'd', '6'],['2', 'a','6'], ['2', 'b', '6'],
>           ['2', 'c', '6'], ['2', 'd', '6'], ['3', 'a', '6'],
>           ['3','b', '6'], ['4', 'a', '6'], ['4', 'b', '6']]
>
>     # retrieve directory name from one of those tuples
>     def directory_name(t):   return t[0]
>
>     for dirname,dir_contents in groupby(sorted(List), directory_name):
>       print 'Directory name:, dirname
>       for dname2,filename,modtime in dir_contents:
>          print 'Filename:%s\nmodified time:%s'% (filename, modtime)
>
> The output is:
>
>     >>> ## working on region in file /usr/tmp/python-9013z7X...
>     Directory name: 1
>     Filename:a
>     modified time:6
>     Filename:b
>     modified time:6
>     Filename:c
>     modified time:6
>     Filename:d
>     modified time:6
>     Directory name: 2
>     Filename:a
>     modified time:6
>     Filename:b
>     modified time:6
>     Filename:c
>     modified time:6
>     Filename:d
>     modified time:6
>     Directory name: 3
>     Filename:a
>     modified time:6
>     Filename:b
>     modified time:6
>     Directory name: 4
>     Filename:a
>     modified time:6
>     Filename:b
>     modified time:6
>     >>>
>
> Is that what you wanted?

Thanx Paul. Thats exactly what i wanted. ur piece of code has reduced
my overall code by half. thanx again.




More information about the Python-list mailing list