[Tutor] Question about list
Hoffmann
oasf2004 at yahoo.com
Tue Apr 11 01:10:41 CEST 2006
--- Terry Carroll <carroll at tjc.com> wrote:
> On Mon, 10 Apr 2006, Hoffmann wrote:
>
> > Hello,
> >
> > I have a list: list1 = [ 'spam!', 2, ['Ted',
> 'Rock']
> > ]
> > and I wrote the script below:
> >
> > i = 0
> > while i < len(list1):
> > print list1[i]
> > i += 1
> >
> > Ok. This script will generate as the output each
> > element of the original list, one per line:
> >
> > spam!
> > 2
> > ['Ted', 'Rock']
> >
> > I also would like to print the length of each
> element
> > of that list:
> >
> > spam! = 1 element
> > 2 = 1 element
> > ['Ted', 'Rock'] = 2 elements
>
> Well, the length of "spam!" is 5. Lengths of
> strings express the number
> of characters.
>
> You could check to see if it's a grouping-type of
> element -- i.e., a list,
> tuple or set -- but I think your better approach is
> that, if this is
> something you need, make all of the elements lists,
> some of which are
> single-item lists; for example, instead of:
>
> list1 = [ 'spam!', 2, ['Ted', 'Rock'] ]
>
> use:
> list1 = [ ['spam!'], [2], ['Ted', 'Rock'] ]
>
> >>> list1 = [ ['spam!'], [2], ['Ted', 'Rock'] ]
> >>> for item in list1:
> ... print item, len(item)
> ...
> ['spam!'] 1
> [2] 1
> ['Ted', 'Rock'] 2
>
> If your heart is set on the other approach, though,
> it can be done:
>
> >>> list1 = [ 'spam!', 2, ['Ted', 'Rock'] ]
> >>> for item in list1:
> ... if isinstance(item,(list, tuple, set)):
> ... print item, len(item)
> ... else:
> ... print item, 1
> ...
> spam! 1
> 2 1
> ['Ted', 'Rock'] 2
> >>>
>
> _______________________________________________
> Tutor maillist - Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
>
Hi Terry,
Your aproaches (mainly the last one!) answered my
question. After following your last approach, I got
what I was looking for.
Up to the page I am (page 84 of "How to think like a
computer scientist - learning with Python"), I didn't
see that nice approach.
Thanks!
Hoffmann
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
More information about the Tutor
mailing list