Comment parcourir une liste de listes en python?
J'ai une liste de listes.
documents = [['Human machine interface for lab abc computer applications','4'],
['A survey of user opinion of computer system response time','3'],
['The EPS user interface management system','2']]
Maintenant, j'ai besoin de parcourir la liste ci-dessus et en sortie une liste de chaînes de caractères, comme indiqué ci-dessous (sans les numéros de la liste d'origine)
documents = ['Human machine interface for lab abc computer applications',
'A survey of user opinion of computer system response time',
'The EPS user interface management system']
source d'informationauteur ChamingaD
Vous devez vous connecter pour publier un commentaire.
La solution la plus simple pour faire exactement ce que vous avez spécifié est:
C'est en gros l'équivalent de la version itérative:
Toutefois, ce n'est pas vraiment une façon générale, d'une itération à travers une approche multidimensionnelle de la liste avec un nombre quelconque de dimensions, depuis imbriquée interprétations de la liste /boucles for imbriquées pouvez obtenir de laide; cependant, vous devriez être sûr de le faire pour 2 ou 3-d des listes.
Si vous décidez de vous avez besoin pour aplatir plus de 3 dimensions, je recommande la mise en œuvre d'un récursive de la traversée de la fonction qui aplatit tous les non-plat couches.
Si vous souhaitez simplement effectuer une itération sur la boucle et faire des choses avec les éléments (plutôt que sur les résultats demandés dans la question), vous pouvez utiliser une base de boucle
C'est une fonctionnalité du langage connu comme "contrôle de flux".
Notez que si vous voulez seulement le résultat donné dans la question, un compréhension de liste machine comme le désir est le meilleur moyen de le faire.
Noter qu'il ignore les originaux de vos documents de la liste (vous écraser la variable d'origine) donc, utilisez ce qui suit si vous voulez avoir une copie de la première colonne ainsi qu'une copie de votre liste d'origine:
Comme expliqué dans http://docs.python.org/library/operator.html#operator.itemgetterVous pouvez aussi essayer avec
qui devrait être plus rapide que l'utilisation explicite d'une boucle.
**modifier. grâce DSM. Ce qui est faux, puisqu'il vient s'aplatit les listes. Je n'ai pas remarqué les données supplémentaires à l'intérieur de la liste après le texte que l'OP veut ignorer.
Ok je vais le rendre vraiment facile pour vous!
Comme d'autres l'ont dit, cela dépend de ce final comportement de votre besoin. Donc, si vous avez besoin de quelque chose de plus complexe que cela, l'utilisation récursive de la traversée, ou si vous êtes comme moi, utilisez un processus itératif de la traversée. Je peux vous aider avec ça si vous en avez besoin.
Vous pouvez également utiliser zip avec l'argument déballage de transformer une liste de "lignes" dans une liste de colonnes:
* l'opérateur passe toutes les lignes comme séparés des arguments à zip
zip prend toutes les lignes et assemble des colonnes avec un élément de chaque liste
vous pouvez utiliser un tableau numpy
par exemple
#
La question est mort, mais encore de savoir d'une façon de plus ne fait pas de mal: