J'ai un problème simple:
J'ai une liste de listes, comme celle-ci: p> Je veux le transformer dans une liste de listes toutes de la longueur 1, où les sublistes> 1 sont résumés, comme celui-ci: p> Comment puis-je atteindre cette sortie? C'est ce que j'ai essayé: p> mais il ne fonctionne pas p> p> p>
4 Réponses :
Vous pouvez simplement créer une liste contenant un seul élément, la somme de la liste intérieure. par [somme (IL)] code> Vous créez cette nouvelle liste (qui soit membre de
sum_list code>) et l'init avec un élément. p> p>
Identique que ceci
Cela ne gagne pas plus simple que ce que Chris a dit dans son commentaire: Votre code ne fonctionne pas car vous n'attribuez pas la somme résultant de votre liste "principale". Suite à votre exemple [[somme (x)] pour x en x] code> p> p>
x [z] = [somme (x [z])] code> devrait fonctionner au lieu de
somme (x [z]) p>. P>.
Juste au cas où vous recherchez une réponse différente (la réponse de @ Green est recommandée)
x = [[0], [4,5,6], [1], [4], [3, 4]] y = [] for each_list in x: sum_of_elem_list = [] sum_of_elem = 0; for each_elem in each_list: sum_of_elem+=each_elem; sum_of_elem_list.append(sum_of_elem) y.append(sum_of_elem_list)
Vous pouvez y parvenir en utilisant la fonction Réduire les fonctions de fonctionnement,
from functools import reduce print([[reduce(lambda i,j: i+j, k)] for k in X])
[[somme (x)] pour x en x] code>
Pourquoi cela fonctionnerait-il? Vous ne faire quelque chose i> avec la somme.
Pourquoi la peine de tester la longueur?