[Baypiggies] Fw: Re: Preserving integers when loading a file into a list

Seth Friedman sfseth at gmail.com
Mon Jun 16 09:18:28 CEST 2008


ok i'm a python newb, but can someone answer the following syntax question
that's been bugging me:

the following line

      temp = [try_int_convert(x)  for x in line.strip().split('        ')]

what is temp = [  ...whatever ... ]  doing?

i'm used to [ .. ] as array syntax, clearly i'm missing some capability
here.    what does python code enclosed in square brackets do?    i could
guess but seems like i might get a stronger answer from the experts.

~seth


On Mon, Jun 16, 2008 at 12:08 AM, Al Nevarez <anevare2 at yahoo.com> wrote:

> Thanks for the tips everyone.
> I'm running an older version of Python.. but the following combination of
> your suggestions worked just fine in yielding a list of lists with integers
> and strings preserved.
>
> my_data[]
> data_file='datasource.txt'
>
> def try_int_convert(sval):
>    try:
>        return int(sval)
>    except ValueError:
>        return sval
>
> for line in open(data_file):
>       temp = [try_int_convert(x)  for x in line.strip().split('        ')]
>       my_data.append(temp)
>
>
> Works fine when the value is blank in the original tab delimited file too
> (must be a tab there of course).  Seems to work perfectly, but does anybody
> spot any issue?
>
>
> Al
>
>
>
> --- On Sun, 6/15/08, Brent Pedersen <bpederse at gmail.com> wrote:
>
> > From: Brent Pedersen <bpederse at gmail.com>
> > Subject: Re: [Baypiggies] Preserving integers when loading a file into a
> list
> > To: "Jason Culverhouse" <jason at mischievous.org>
> > Cc: baypiggies at python.org
> > Date: Sunday, June 15, 2008, 1:46 PM
> > On Sun, Jun 15, 2008 at 12:31 PM, Jason Culverhouse
> > <jason at mischievous.org> wrote:
> > > not x.isdigit() and x or int(x) is going to fail for
> > empty string... ''
> > >        not False and '' or int('')
> > <-value error since
> > >
> > > You could combine Adam's try_int_convert
> > >
> > > import csv
> > > import functools
> > > import sys
> > >
> > > i = functools.partial(map, try_int_convert) # maybe
> > convert a list to int
> > > t = functools.partial(tuple) # convert to tuple, not
> > sure if you need the in
> > > tuples
> > >
> > > #Read a TSV file from stdin and convert
> > > [t(i(line)) for line in csv.reader(sys.stdin,
> > dialect='excel-tab')]
> > >
> > > Jason
> >
> > good point. out of curiosity, how is t =
> > functools.partial(tuple),
> > then using t() different from using tuple() directly?
> > _______________________________________________
> > Baypiggies mailing list
> > Baypiggies at python.org
> > To change your subscription options or unsubscribe:
> > http://mail.python.org/mailman/listinfo/baypiggies
>
>
>
> _______________________________________________
> Baypiggies mailing list
> Baypiggies at python.org
> To change your subscription options or unsubscribe:
> http://mail.python.org/mailman/listinfo/baypiggies
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/baypiggies/attachments/20080616/ef236ebc/attachment.htm>


More information about the Baypiggies mailing list