Mon code ne supprimera pas les éléments si elles existent dans la liste.
Ceci est la liste que je travaille avec: exécutez la fonction: Ceci est la sortie que j'attends: mais je reçois: Voici mes instructions: strong>
Cette fonction prend deux arguments: une liste et une liste de numéros à supprimer de la liste. Cette fonction vérifiera ensuite si ces éléments existent dans cette liste et s'ils existent, ils seront supprimés. P> P> [1, 2, 3, 4, 5, 6, 7, 8] < / Code> p> supprimer_items_from_list (my_list, [1,5,6]) code> p> [2, 3, 4, 7, 8] Code> P> [1, 2, 3, 4, 5, 6, 7, 8] code> p>
3 Réponses :
Si Ce que vous voulez faire est d'itérer sur l'élément de [éléments] dans la liste code> vérifie: une liste contenant la liste des éléments est un élément de la liste. C'est-à-dire que vous demandez: est [[1, 2, 3]] code> membre de la liste? Probablement pas. items_to_remove code> et faites ce que vous avez fait p>
Essayez ceci:
def remove_items_from_list(ordered_list, items_to_remove):
return [i for i in ordered_list if not i in items_to_remove]
Votre fonction n'est pas ce qui a été posé et ne signifie pas ce qu'il décrit dans le nom de la fonction. Il ne manipule pas une liste, il renvoie une nouvelle liste.
La réponse bleue fournie est correcte, mais une approche plus idiomatique serait de le faire avec une compréhension de la liste, comme: Notez que cela ne supprimera pas les éléments de l'original. Liste, mais renvoyer une nouvelle liste sans les éléments (comme indiqué par Bastian). P> Modifier: Arkistarvh kltzuonste m'a battue, mais je dirais toujours que x pas dans y code > est plus idiomatique que pas x en y code>. p> p>
Ce n'est pas la même chose ... La question était de supprimer des éléments d'une liste, mais vous renvoyez une nouvelle liste. Selon l'endroit où il est utilisé, cela pourrait casser du code.
Considérant que l'OP a présenté une fonction qui prend une liste, supprime les articles de celui-ci et renvoie la même liste, je suppose que c'est ce qu'il veut réellement. S'il est important que les éléments soient supprimés de la liste initiale, la fonction ne doit pas avoir de valeur de retour (par souci de clarté).
Votre point est toujours valable, cependant, j'ai donc clarifié ma réponse.
Veuillez lire ce qu'il a écrit dans ses instructions, ne présumez pas à partir de son code de travail non ... Les instructions indiquent clairement que les éléments doivent être supprimés de la liste.
Est
commandé_list code> vraiment commandé?Regardez votre code. Vous vérifiez si
[[1,5,6]] code> existe dans[1, 2, 3, 4, 5, 6, 7, 8] code> - cela ne peut pas fonctionner .non, il n'est pas vraiment commandé mais c'est ce que l'argument doit être appelé