String Replace Problem...
Steven Bethard
steven.bethard at gmail.com
Mon Feb 28 16:03:38 EST 2005
Sean McIlroy wrote:
> f = lambda x: (x[0]=='@' and x[6:] + '.0') or (x=='/' and x + '\n') or
> x
See "Inappropriate use of Lambda" in
http://www.python.org/moin/DubiousPython.
You're creating a named function, so there's no reason to use the
anonymous function syntax. Try:
def f(x):
return (x[0]=='@' and x[6:] + '.0') or (x=='/' and x + '\n') or x
or if it must be on one line:
def f(x): return (x[0]=='@' and x[6:] + '.0') or (x=='/' and x + '\n') or x
Personally, I would probably write this as IMHO more readable:
infile, outfile = open("Errors.txt"), open("Errors_2.txt")
for i, line in enumerate(infile):
permx, atpermx, rest = line.split(None, 2)
outfile.write(' '.join([permx, str(parameter_values[i]), rest]))
In action:
py> s = """\
... 'PERMX' @PERMX1 1 34 1 20 1 6
... 'PERMX' @PERMX2 1 34 21 41 1 6
... 'PERMX' @PERMX3 1 34 1 20 7 14
... 'PERMX' @PERMX4 1 34 21 41 7 14
... 'PERMX' @PERMX5 1 34 1 20 15 26
... 'PERMX' @PERMX6 1 34 21 41 15 26
... 'PERMX' @PERMX7 1 34 1 20 27 28
... 'PERMX' @PERMX8 1 34 21 41 27 28
... 'PERMX' @PERMX9 1 34 1 20 29 34
... 'PERMX' @PERMX10 1 34 21 41 29 34
... 'PERMX' @PERMX11 1 34 1 20 35 42
... 'PERMX' @PERMX12 1 34 21 41 35 42
... 'PERMX' @PERMX13 1 34 1 20 43 53
... 'PERMX' @PERMX14 1 34 21 41 43 53
... 'PERMX' @PERMX15 1 34 1 20 54 61
... 'PERMX' @PERMX16 1 34 21 41 54 61
... """
py> parameter_values = range(1, 17)
py> for i, line in enumerate(s.splitlines()):
... permx, atpermx, rest = line.split(None, 2)
... print ' '.join([permx, str(parameter_values[i]), rest])
...
'PERMX' 1 1 34 1 20 1 6
'PERMX' 2 1 34 21 41 1 6
'PERMX' 3 1 34 1 20 7 14
'PERMX' 4 1 34 21 41 7 14
'PERMX' 5 1 34 1 20 15 26
'PERMX' 6 1 34 21 41 15 26
'PERMX' 7 1 34 1 20 27 28
'PERMX' 8 1 34 21 41 27 28
'PERMX' 9 1 34 1 20 29 34
'PERMX' 10 1 34 21 41 29 34
'PERMX' 11 1 34 1 20 35 42
'PERMX' 12 1 34 21 41 35 42
'PERMX' 13 1 34 1 20 43 53
'PERMX' 14 1 34 21 41 43 53
'PERMX' 15 1 34 1 20 54 61
'PERMX' 16 1 34 21 41 54 61
STeVe
More information about the Python-list
mailing list