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