Récupération de plusieurs variables en meme temps

Résolu
Hayato -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonjour,

Je cherche comment diviser ce que je reçois via bluetooth en plusieurs variable.

Par exemple, si je recois => 10,2,40,3,2  je voudrais que le 10 aille dans une variable, le 2 dans une autre etc.

Est-ce qu'il y aurait des librairies ou une fonction pour faire ça, ou bien est ce que je dois le coder moi-même ? Et si je dois le coder moi meme comment puis-je faire ?

3 réponses

  1. Diablo76 Messages postés 344 Date d'inscription   Statut Membre Dernière intervention   140
     

    Salut,

    Autre possibilité, l'unpacking qui permet d'attribuer chaque valeur de la liste à une variable.

    x="10,2,40,3,2"
    var1, var2, var3, var4, var5 = x.split(",")

    Mais du coup, il faut être sur que le nombre d'éléments de la liste ne varie pas 

    2
    1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 942
       

      Ou pour être indépendant du nombre d'éléments :

      s = "10,2,40,3,2"
      ma_liste = list(x.split(","))
      print(ma_liste[0]) # 10
      print(ma_liste[1]) # 2

      split permet de séparer sur une sous chaîne arbitraire

      Pour des séparations basées sur un motif plus compliqué, voir re.split.

      Bonne chance

      0
      1. Diablo76 Messages postés 344 Date d'inscription   Statut Membre Dernière intervention   140 > mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention  
         

        Salut,

        ma_liste = list(s.split(","))

        Est-ce nécessaire d'utiliser list() puisque la méthode split() retourne une liste. 

        0
      2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 942 > Diablo76 Messages postés 344 Date d'inscription   Statut Membre Dernière intervention  
         

        Version courte

        Non, tu as raison c'est superflu.

        Version longue

        str.split retourne bien une liste, comme le montre :

        type(s.split(","))

        Plutôt qu'écrire :

        ma_liste = list(s.split())

        ... il vaut donc mieux écrire directement :

        ma_liste = s.split(",")

        Ainsi le code est plus concis et on évite de recréer une liste à partir de la liste retournée par s.split().

        Merci pour ta remarque

        1
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     

    un exemple:

    x="10,2,40,3,2"
    y=x.split(",")
    print (y)
    for  n in y:
        print(n)
    1
  3. Utilisateur anonyme
     

    Bonjour 


    un petit peu de lecture

    https://codes-sources.commentcamarche.net/forum/affich-10107769-message-a-tous-les-debutants-souvent-autodidactes#p10107769


    0