IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Question concernant filter [Python 2.X]


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Pologne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 26
    Par défaut Question concernant filter
    Bonjour,
    J'ai un problème avec la fonction filter et j'avoue que je n'arrive pas à trouver mon erreur.
    J'essaye de réaliser une implémentation du crible d'Eratosthène pour calculer les premiers nombres premiers. Le principe est simple: créer une liste de 1 à 100, puis systématiquement éliminer avec la fonction filter les nombres qui ne sont pas premiers. L'ennui, c'est que dès la première itération filter me renvoie une liste vide...
    Avez-vous une idée de ce qui cloche ? Merci d'avance

    >>> liste=range(1,101,2)
    >>> for y in range(1,101):
    liste = filter( (lambda x: (x % y != 0) and (x != y)), liste)

  2. #2
    Membre éprouvé
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Par défaut
    Bonjour,

    il y a 2 problèmes dans ton code.
    Tu commences ta boucle à partir de 1 et du coup tu filtres tous les entiers divisibles par 1, c'est à dire tous les entiers.
    De plus, dans la seconde partie du test, tu fais l'inverse de ce qu'il faudrait faire, il faut garder les entiers non divisibles par y et ceux égales à y

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    liste=range(1,101)
    for y in range(2,101):
       liste = filter(lambda x: x % y != 0 or x == y, liste)
    print liste

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Pologne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2016
    Messages : 26
    Par défaut Merci :)
    Aïe, merci, autant pour moi.....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Deux questions concernants les vues
    Par 13obscur dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 19/04/2005, 14h29
  2. [Servlet + Class] question concernant plusieurs connections
    Par ShinJava dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 29/11/2004, 16h39
  3. Réponses: 7
    Dernier message: 10/09/2004, 14h28
  4. [Indy] Questions concernant l'envoi de mail
    Par delphicrous dans le forum Web & réseau
    Réponses: 3
    Dernier message: 24/06/2004, 15h06
  5. Question concernant l'API "WaitforSingleObject
    Par Drooxy dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 29/03/2003, 07h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo