Trouver des éléments dans un tuple et de les filtrer
En supposant que j'ai un tuple comme:
[('text-1','xxx'), ('img-1','iii'), ('img-2','jjj'), ('text-2','xxx')]
Je veux filtrer la liste et de produire un nouveau avec des éléments qui commencent par 'img'. Donc ma nouvelle liste ressemblera:
[('img-1','iii'), ('img-2','jjj')]
Merci!
OriginalL'auteur sidewinder | 2011-08-17
Vous devez vous connecter pour publier un commentaire.
:
D'une autre manière:
La première est appelée une compréhension de liste. Voir F. C. la réponse de pour une technique connexe. La syntaxe de base est
[{expression} for {item_var_or_vars} in {iterable} if {boolean_expression}]
. Il est sémantiquement équivalent à quelque chose comme ceci:La
if {boolean_expression}
bits est optionnel, tout comme il est dans la boucle for.La seconde est simplement la fonction intégrée
filter
, qui accepte une fonction de test et un objet iterable, et renvoie une liste contenant tous les éléments qui "passe" la fonction de test.lambda
, si vous n'avez pas vu avant, c'est juste un moyen rapide de définition d'une fonction. Vous pouvez faire ceci à la place:voir mes modifications pour une explication plus détaillée.
La première est une compréhension de liste la seconde est filtre et un expression lambda
Merci. C'est tellement perspicace.
OriginalL'auteur senderle
Quelque chose comme ceci peut-être?
OriginalL'auteur g.d.d.c
Juste une autre façon avec générateur d'expression (il pourrait faire une différence sur les grandes listes)
OriginalL'auteur Facundo Casco
OriginalL'auteur BrainStorm