[Tutor] Re: Ugly python one-liner !

Derrick 'dman' Hudson dman@dman.ddts.net
Tue, 9 Jul 2002 22:57:29 -0500


--t0UkRYy7tHLRMCai
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, Jul 08, 2002 at 10:59:30PM +0530, Prahlad Vaidyanathan wrote:

|     I was again playing around with the matrix module I have been
| working on recently, and I found I could write this absolutely perl-ish
| one-liner to compute the one-norm of the matrix.
|

import operator

|     def one_norm (self) :
|         """The sum of the elements in different rows of each column
|         is computed, and the maximum of these values is said to
|         be the one-norm of the Matrix.
|         """
          return max([reduce(operator.add,
|                     [abs(self[r,c]) for r in range(self.rows)])
|                         for c in range(self.columns)])


|     Between map(), reduce() and list comprehension, I have finally
| succeeded in making python look scary :-)

Yep.  But you don't need that lambda in there -- the operator module
already has an add function for just that purpose :-).  You also don't
need the backslashes -- python knows to continue because you haven't
close the parenthesis.

HAND,
-D

--=20
=20
Microsoft is to operating systems & security ....
                                     .... what McDonald's is to gourmet coo=
king
=20
http://dman.ddts.net/~dman/


--t0UkRYy7tHLRMCai
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iEYEARECAAYFAj0rsKkACgkQO8l8XBKTpRQWtwCdE7o29RbGbjQBkq8BDISoCl5b
B/IAn3IpyojV1AE7jgUgwLiVojN6ep6n
=CodM
-----END PGP SIGNATURE-----

--t0UkRYy7tHLRMCai--