Bonjour,

voici petit cas d'école :

j'ai une fonction qui renvoie une liste et je voudrait construire une liste qui soit la fusion (ou concaténation) des listes qu'elle renvoie.

Voici un petit code d'exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def get ( x ):
    # juste une fonction qui renvoie une liste (on se fiche de quoi...)
    return [ i*i for i in xrange( x,x+x/2 )]
 
def test1 ( n ):
    # construction par compréhension --> élégant mais pas ce que je veux... 
    return [ get( i ) for i in xrange( n ) ]
 
def test2 ( n ):
    # syntaxe lourde mais ce que je veux...
    res = []
    for i in xrange( n ):
        res += get( i )
    return res
 
print test1( 8 )
print test2( 8 )
 
[[], [], [4], [9], [16, 25], [25, 36], [36, 49, 64], [49, 64, 81]]
[4, 9, 16, 25, 25, 36, 36, 49, 64, 49, 64, 81]
A vous pythonistes chevronnés : comment obtenir ce que je veux (test2) avec une syntaxe légère et élégante (à la test1)?