Je recherche desesperement une fonction qui permet de transformer une liste [[3,5,6],[7,5],[2,7,9]] en [3,5,6,7,5,2,7,9], je crois que ça existe dans python.
J'espere que quelqu'un la connait.
Merci !
Je recherche desesperement une fonction qui permet de transformer une liste [[3,5,6],[7,5],[2,7,9]] en [3,5,6,7,5,2,7,9], je crois que ça existe dans python.
J'espere que quelqu'un la connait.
Merci !
Je ne sais pas si il existe une fonction toute faite mais ...
Problème : en l'état ne marche pas pour une liste du type [..,[[..,..],[..]],..] (3 niveaux) mais seulement pour une liste comme dans ton exemple [[3,5,6],[7,5],[2,7,9]] (2 niveaux). Tout dépend l'utilisation que tu veux en faire, si les niveaux peuvent changer, alors tu peux recommencer l'opération jusqu'à avoir une liste à 1 seul niveau.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 >>> liste = [[3,5,6],[7,5],[2,7,9]] >>> liste=[liste[i][j] for i in range(len(liste)) for j in range(len(liste[i]))] >>> print liste [3,5,6,7,5,2,7,9]
comme ca aussi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 a = [] for i in l: a.extend(i)
Guigui m'a grilléalors je fais encore plus elegant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 a = [] map(a.extend,b)2 lignes ... qui dit mieux ... ?
La puissance de python, non ? Mais ne fonctionne toujours pas dans le cas d'une autre liste imbriquée...
Choupi
MacOS 10.5 / Ubuntu / C / Python / R
Pensez au tag résolu
Les versions de Choupi et Guigui_ sont en effet plus simple que la mienne mais il reste encore ce problème de niveaux (qui n'est en fait peut-être pas un problème pour ton application). Encore une fois si cela pose problème il suffit de répéter la fonction jusqu'à arriver à une liste à 1 niveau.
Bon courage
Merci les gars, vous assurez !
Je pensais que python avait une fonction qui faisait ça mais ça doit etre des souvenirs de prog fonctionnelle en caml ou j'ai du faire une focntion de ce genre (en utilisant map d'ailleurs).
Encore merci !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager