Récupération de plusieurs variables en meme temps

Résolu
Hayato -  
mamiemando Messages postés 33772 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

Diablo76 Messages postés 246 Date d'inscription   Statut Membre Dernière intervention   77
 

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
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 

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
Diablo76 Messages postés 246 Date d'inscription   Statut Membre Dernière intervention   77 > mamiemando Messages postés 33772 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
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882 > Diablo76 Messages postés 246 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
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 

un exemple:

x="10,2,40,3,2"
y=x.split(",")
print (y)
for  n in y:
    print(n)
1
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