Tri d'une liste de tuples et itertools
Bonjour,
Désirant générer la liste suivante :
Code:
[(2, 0), (3, 0), (4, 0), (2, 1), (3, 1), (4, 1), (2, 2), (3, 2), (4, 2), (2, 3), (3, 3), (4, 3)]
j'ai essayé le module product d'itertools :
Code:
1 2 3 4
| from itertools import product
def construire1():
return list(product(range(2,5), range(4)))
print(construire1()) |
mais cela me donne:
Code:
[(2, 0), (2, 1), (2, 2), (2, 3), (3, 0), (3, 1), (3, 2), (3, 3), (4, 0), (4, 1), (4, 2), (4, 3)]
J'aurai aimé utiliser directement un 'outil' d'itertools.
J'ai trouvé cela pour trier ma liste :
Code:
1 2 3 4
| from operator import itemgetter
l1 = construire1()
l1.sort(key=itemgetter(1))
print(l1) |
Bien sûr, je peux aussi utiliser la méthode suivante:
Code:
1 2 3 4 5 6 7 8 9
| def construire2():
maliste = []
for j in range(4):
for i in range(2,5):
a = (i,j)
maliste.append(a)
return maliste
print(construire2())
[(2, 0), (3, 0), (4, 0), (2, 1), (3, 1), (4, 1), (2, 2), (3, 2), (4, 2), (2, 3), (3, 3), (4, 3)] |
mais ce n'est pas mon questionnement.
Quelqu'un peut-il m'aider ?