Compte tenu de cette valeur: p>
Y a-t-il un moyen d'utiliser une compréhension de liste pour produire cette valeur: p>
Je préférerais le faire sans utiliser zip, si possible. P>
merci! p>
EDIT: Ma raison pour ne pas vouloir utiliser Zip était que j'ai utilisé Zip pour faire quelque chose de similaire auparavant (bien que non une liste de listes), et il a été recommandé d'essayer une compréhension de la liste à la place, ce qui en fait un petit rang . Je pensais que le même principe pourrait s'appliquer ici, mais peut-être pas, car il s'agit d'une liste de listes et non seulement d'une seule liste comme le problème précédent. P>
En outre, mes tentatives à ce sujet avant de poster cette question ne valaient même pas la peine d'être partagée. Il s'agissait essentiellement d'une compréhension de liste qui a créé une seule liste, et je n'ai pas pu comprendre comment créer une liste de listes avec elle. Peut-être que ce n'est pas aussi simple que j'avais espéré. Je pourrais aller avec zip après tout. P> [[1, 2, 3], [4, 5, 6], [7, 8, 9]] code> p>
[[[1, 4, 7], [2, 5, 8], [3, 6, 9]] code>? P>
4 Réponses :
Essayez ceci: à l'aide de code> zip code> Vous pouvez prendre des valeurs de listes intérieures ensemble et utiliser ou p> * code> vous pouvez déballer ces valeurs < / p>
sans zip:
Que diriez-vous de cela? sur la base de mes tests, cela fonctionne comme la méthode de @ Himanshu de faire [* list1 (* list1)] code> et et et Liste (carte (liste, zip (* list1))) code> p> p>
sans zip code>:
FYI - Cela va être évité de manière agressive à moins de montrer ce que vous avez essayé jusqu'à présent pour faire ce travail. Il ne faut pas avoir raison, juste une tentative.
Pourquoi ne pas utiliser
zip code>? C'est le moyen le plus rapide et le plus concis possible de le faire.Vous pouvez toujours utiliser la compréhension pour modifier les tuples, mais
zip (* Alist) code> est l'idiome le plus courant pour "transposer" une liste de listes.