J'essaie de décompresser les éléments d'une liste qui est emballée dans un tuple.
['a', 'list', 'of', 'strings'] ['inside', 'a', 'tuple'] etc...
Par exemple, je veux obtenir cet élément ('a')
J'ai essayé ceci:
for (i, words) in list(enumerate(myTuple)): print(words)
Mais cela renvoie la liste comme ceci
myTuple = (['a', 'list', 'of', 'strings'], ['inside', 'a', 'tuple'], ['extra', 'words', 'for', 'filler'])
Comment puis-je obtenir les éléments dans la liste?
3 Réponses :
Actuellement, vous êtes en train de parcourir toute la boucle et d'imprimer les éléments contenus dans la liste.
Cependant, si vous souhaitez accéder à un élément spécifique de la liste, faites-le simplement référence par son nom en utilisant .index ()
Alternativement, vous pouvez simplement imprimer (list (indexposition))
Vous pouvez utiliser réduire
, par exemple. avec numpy
import operator from functools import reduce reduce(operator.add, myType, []) # or, reduce(lambda x, y: x + y, myTuple)
Ou, base
from functools import reduce reduce(append, myTuple) Out[149]: array(['a', 'list', 'of', 'strings', 'inside', 'a', 'tuple', 'extra', 'words', 'for', 'filler'], dtype='<U7')
réduire
est une fonction d'opération de liste classique avec map
, filter
, etc. Il prend une valeur initiale, ici une liste vide, et applique successivement une fonction ( append
) à chaque élément de la séquence ( myTuple
).
Une très belle réponse, pourriez-vous s'il vous plaît expliquer un peu aussi, merci :)
Ok, j'ai ajouté une courte description. Cette fonction est cependant assez basique.
Je viens d'essayer cela en mode veille très rapidement ... Dit que append
n'est pas défini? Qu'est-ce que je fais mal?
Oh, j'utilisais numpy, j'en ajouterai un pour la base
Vous pouvez utiliser l'indexation de votre tuple puis les listes pour accéder aux éléments les plus internes. Par exemple, pour obtenir la chaîne 'a'
, vous pouvez appeler:
from itertools import chain for i in chain(*myTuple): print(i)
Si vous souhaitez parcourir tous les éléments des listes, vous pouvez utiliser la méthode chain
de la forme itertools
. Par exemple:
myTuple[0][0]
La chaîne
était exactement ce que je recherchais. Fonctionne parfaitement.
bonne réponse tbh.
Vous décompressez un tuple qui contient des listes. Pour obtenir l'élément dans les listes, vous pouvez indexer la liste ou la parcourir.
Voulez-vous la sortie comme 'a', 'list', 'of', 'strings', 'inside', 'a', 'tuple', ...?
Note latérale:
pour i, mots dans enumerate (myTuple):
est tout ce dont vous avez besoin pour obtenir le comportement que vous avez. L'emballage dans laliste
fait simplement un temporaire inutile, et vous n'avez pas besoin de parenthèses autour de la partiei, words
.@Haramoz Oui, je veux le 'a', 'list', etc.