J'ai une liste de la forme :
a = [[(1,11),(2,22),(3,33)], [(4,44),(5,55)], ...]
et je veux obtenir la liste suivante :
[(1,11),(2,22),(3,33),(4,44),(5,55), ...]
Bien sûr, les entiers 1,2,3, ..., 11, 22, 33, ...
sont des nombres choisis ici arbitrairement.
Je souhaite faire cette opération de manière "pythonesque"
et efficace (les listes peuvent être longues...).
Pour faire cette opération :
1. utilisation de "extend"
b = []
[b.extend(r) for r in a]
il me semble que l'utilisation de "extend" est relativement lente.
2. Utilisation de numpy
c = numpy.ravel(a)
b = [(c[i],c[i+1]) for i in range(len(c))[::2]]
Je ne suis pas sûr que cette solution soit plus rapide que la précédente.
De plus la fonction ravel ne fonctionne que si le nombre d'éléments
de chaque liste de niveau 1 soit de même taille. Dans mon exemple, ça ne
fonctionne que si a = [[(1,11),(2,22),(3,33)], [(4,44),(5,55),(6,66)], ...]
J'ai pris l'habitude d'utiliser types car ce module contient des types génériques très pratiques. Comme, par exemple, types.StringTypes, qui permet de tester à la fois les chaînes String et Unicode. Du coup, j'utilise toujours la même notation, ce qui m'évite de me poser des questions.
Ah, merci pour cette précision. J'ai moi même à l'inverse très fortement l'habitude d'utiliser les builtins autant que possible alors je ne me suis jamais posé de questions quand au module types.
Par exemple, le type basestring très pratique pour tester à la fois str et unicode :)
Sur ce, je vais enquêter sur un très mystérieux types.EllipsisType que je viens de trouver dans ce module et qui prétend être un builtin ellipsis mais est introuvable et est impossible à instancier :)
Michel Claveau - NoSpam SVP ; merci a écrit :
Bonjour !
J'ai pris l'habitude d'utiliser types car ce module contient des types
génériques très pratiques. Comme, par exemple, types.StringTypes, qui
permet de tester à la fois les chaînes String et Unicode.
Du coup, j'utilise toujours la même notation, ce qui m'évite de me poser
des questions.
Ah, merci pour cette précision. J'ai moi même à l'inverse très fortement
l'habitude d'utiliser les builtins autant que possible alors je ne me
suis jamais posé de questions quand au module types.
Par exemple, le type basestring très pratique pour tester à la fois str
et unicode :)
Sur ce, je vais enquêter sur un très mystérieux types.EllipsisType que
je viens de trouver dans ce module et qui prétend être un builtin
ellipsis mais est introuvable et est impossible à instancier :)
J'ai pris l'habitude d'utiliser types car ce module contient des types génériques très pratiques. Comme, par exemple, types.StringTypes, qui permet de tester à la fois les chaînes String et Unicode. Du coup, j'utilise toujours la même notation, ce qui m'évite de me poser des questions.
Ah, merci pour cette précision. J'ai moi même à l'inverse très fortement l'habitude d'utiliser les builtins autant que possible alors je ne me suis jamais posé de questions quand au module types.
Par exemple, le type basestring très pratique pour tester à la fois str et unicode :)
Sur ce, je vais enquêter sur un très mystérieux types.EllipsisType que je viens de trouver dans ce module et qui prétend être un builtin ellipsis mais est introuvable et est impossible à instancier :)
Bruno Desthuilliers
Christophe a écrit : (snip)
Par exemple, le type basestring très pratique pour tester à la fois str et unicode :)
Officiellement déconseillé (mais à peu près tout le monde le fait).
Sur ce, je vais enquêter sur un très mystérieux types.EllipsisType que je viens de trouver dans ce module et qui prétend être un builtin ellipsis mais est introuvable et est impossible à instancier :)
Un point de départ: http://docs.python.org/reference/datamodel.html#the-standard-type-hierarchy
Christophe a écrit :
(snip)
Par exemple, le type basestring très pratique pour tester à la fois str
et unicode :)
Officiellement déconseillé (mais à peu près tout le monde le fait).
Sur ce, je vais enquêter sur un très mystérieux types.EllipsisType que
je viens de trouver dans ce module et qui prétend être un builtin
ellipsis mais est introuvable et est impossible à instancier :)
Un point de départ:
http://docs.python.org/reference/datamodel.html#the-standard-type-hierarchy
Par exemple, le type basestring très pratique pour tester à la fois str et unicode :)
Officiellement déconseillé (mais à peu près tout le monde le fait).
Sur ce, je vais enquêter sur un très mystérieux types.EllipsisType que je viens de trouver dans ce module et qui prétend être un builtin ellipsis mais est introuvable et est impossible à instancier :)
Un point de départ: http://docs.python.org/reference/datamodel.html#the-standard-type-hierarchy