Timings pour Python 3.6 pour extraire le second élément d'une liste de 2 tuplets.
Aussi, a ajouté numpy
méthode de tableau, qui est plus simple à lire (mais sans doute plus simple que la compréhension de la liste).
from operator import itemgetter
elements = [(1,1) for _ in range(100000)]
%timeit second = [x[1] for x in elements]
%timeit second = list(map(itemgetter(1), elements))
%timeit second = dict(elements).values()
%timeit second = list(zip(*elements))[1]
%timeit second = np.array(elements)[:,1]
et les horaires :
list comprehension: 4.73 ms ± 206 µs per loop
list(map): 5.3 ms ± 167 µs per loop
dict: 2.25 ms ± 103 µs per loop
list(zip) 5.2 ms ± 252 µs per loop
numpy array: 28.7 ms ± 1.88 ms per loop
Notez que map()
et zip()
ne renvoient plus de liste, d'où la conversion explicite.