Plutôt que de procéder en deux temps :
>>> from sympy.matrices import Matrix >>> def f(i,j): ... if i == j: ... return 1 ... else: ... return 0 ... >>> Matrix(4, 4, f) ⎡1 0 0 0⎤ ⎢0 1 0 0⎥ ⎢0 0 1 0⎥ ⎣0 0 0 1⎦
On peut tout faire d'un coup :
>>> Matrix(3, 4, lambda i,j: 1 - (i+j) % 2)
Le crible d'Eratosthène peut s'écrire simplement en utilisant les fonctions lambda :
def eratosthene(n): f = lambda l: l and [l[0]] + f([i for i in l if i%l[0]]) return f(range(2,n+1))