splitting tables

robsom no.mail at no.mail.it
Wed Feb 11 01:44:18 CET 2004


Il Tue, 10 Feb 2004 18:09:33 +0100, Karl Pflästerer ha scritto:
> If you're interested there's a vrey good mailing list for Python
> starters (and others): Python Tutor (I don't know the correct address
> ath the momwnr but it should be easy to find on the ython web site).

I'll have a look, I'm beginning to appreciate Python even though at first
I hated this indentation thing and I (still) don't like the "for in
range()" way to build loops.


>> First question: shouldn't it be split(line)?
> 
> No.  The split method is a method of strings.  Since line is a string
> you call here a method of a string object.

Ok, but then why if I write this

for line in fin.readlines():
	line = split(line)

it does work anyway? Are there two ways to use the same function?
 
>> Now, my book says that lambda works by applying (in this example) the
>> instructions in "dat != '-9999' and dat or ''" to the dat variable. Does
>> this mean that (I'm more or less guessing now) this code splits the line
> 
> It gets splitted on spaces.
> 
>> assign each element to a dat variable which could have three types of
>> value (i.e. its "normal" value or -9999 or a space)? And then you use a
> 
> That's nearly right.  This trick with `and' and `or' is necessary since
> you can't have statements in Python lambda. Written the above as `if'
> statement would be:
> if dat != '9999':
>     return dat
> else:
>     return ''

So in the end here is ho this piece of code works:
takes a line, split the line on spaces and put each element into a dat
variable. if the dat variable is equal to '9999' or whatever other symbol
is used to indicate a blank substitute it with a space otherwise leave its
value. then put together the dat (into a list?) separated by a comma.
I got it! maybe...

> No since join is a method.  If you have an older Python book it may be
> written differently.

well I'm using "Learning to Program" by Alan Gauld which I found on the
python website. But I found the description of the join function on the
python documentation of my system. Anyway, as I said it works both ways
(at least for split, haven't tried with join).
I was thinking of buying "Learning Python" of the O'Reilly series. What do
you think?
 
> I didn't know you were a beginner otherwise I would have written more
> verbosely.  The Tutor list might be the right place for you to start.

don't worry I should have said :)
 
>> Morevoer I wonder if it is possible to achieve the same thing  without
>> using the functional programming.
> 
> Yes, but it would be less fun :-)

uhm... maybe... I'll tell you when I get there... :D:D
thanks a lot

R






More information about the Python-list mailing list