Partage
  • Partager sur Facebook
  • Partager sur Twitter

trouver un chiffre précise

    22 juillet 2022 à 11:54:08

    Hello tout le monde 

    J'ai envie de qu'il sort juste le clé avec le mot "1" , mais il me sort  vendredi13 aussi.

    dictionnaire = {"lundi1" :2, "vendredi13":23}
    for i in dictionnaire:
        if "1" in i:
            print(i)
    


    Merci

    -
    Edité par Omoji 22 juillet 2022 à 13:08:38

    • Partager sur Facebook
    • Partager sur Twitter

    Doucement mais Surement 

    Anonyme
      22 juillet 2022 à 12:39:32

      Salut,

      Ce n'est pas comme ça que l'on parcourt un dictionnaire :

      dictionnaire = {"lundi1" :1, "vendredi13":13}
      
      for k, v in dictionnaire.items():
          if v == 1:
              print(f"Clé = {k}, Valeur = {v}")
      
      # Ou encore
      for v in dictionnaire.values():
          if v == 1:
              print(f"Valeur = {v}")
      



      • Partager sur Facebook
      • Partager sur Twitter
        22 juillet 2022 à 12:56:35

        Salut 

        Désoler, j'aurais du mal expliquer, j'envie de sortir tout les clé qui contient et seulement "1", lundi1

        non vendredi13.

        Merci

        -
        Edité par Omoji 22 juillet 2022 à 15:06:14

        • Partager sur Facebook
        • Partager sur Twitter

        Doucement mais Surement 

          22 juillet 2022 à 14:21:50

          bah dans "13" il y a un "1" donc normal que tu obtiennes les 2. tu pourrais faire avec endswith; mais ça te sortirai "11" ou "51" si présent dans le dictionnaire. Pour avoir seulement "1" il faudrait je pense se tourner vers les expressions régulières (regex)
          • Partager sur Facebook
          • Partager sur Twitter
            22 juillet 2022 à 15:27:40

            Quelque chose du genre ?
            "^[^1]*1[^1]*$"
            • Partager sur Facebook
            • Partager sur Twitter

            Le Tout est souvent plus grand que la somme de ses parties.

              22 juillet 2022 à 16:23:01

              plutôt quelque chose comme ça je pense "^.*[^0-9]1{1}$"
              • Partager sur Facebook
              • Partager sur Twitter
                22 juillet 2022 à 17:31:22

                Ceci fonctionne:
                 
                from re import *
                v = "vendredi 1"
                p = "^.*[^0-9]1$"
                if search(p, v):
                    print("OK")
                v+="3"
                if search(p, v):
                    print("encore")
                 
                Seul le premier print affiche

                Même chose pour:

                v = v.replace("1", "31")

                -
                Edité par PierrotLeFou 22 juillet 2022 à 17:36:03

                • Partager sur Facebook
                • Partager sur Twitter

                Le Tout est souvent plus grand que la somme de ses parties.

                Anonyme
                  22 juillet 2022 à 17:49:18

                  Pour les allergique au regex :

                  words = ("lundi1","mardi14")
                  for word in words:
                  	num = "".join(ch for ch in word if ch.isnumeric())
                  	if int(num) == 1:
                  		print(word)



                  -
                  Edité par Anonyme 22 juillet 2022 à 17:49:56

                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 juillet 2022 à 19:40:16

                    Si on ne connait pas isnumeric:
                        if "0" <= ch <= "9"

                    @ErispoeLeNarvalo:
                    Si j'ai la séquence "vendredi 001", ça donnera 1, mais est-ce valide?

                    Si on teste en plus si la chaîne est de longueur 1, ça va marcher.

                    -
                    Edité par PierrotLeFou 23 juillet 2022 à 5:04:34

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Le Tout est souvent plus grand que la somme de ses parties.

                      23 juillet 2022 à 15:39:03

                      Et comment on fait pour lun1di1?

                      A la base, ce sont les clefs qui sont malfoutues: "lundi1" pourrait être ('lundi', 1) et 'vendredi13': ('vendredi', 13)

                      • Partager sur Facebook
                      • Partager sur Twitter
                        23 juillet 2022 à 17:53:58

                        J'ai supposé au départ que les clés étaient correctes: mot suivi de nombre: "vendredi13", "lundi11", "mardi1", etc.
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Le Tout est souvent plus grand que la somme de ses parties.

                        trouver un chiffre précise

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown