Récupération de plusieurs variables en meme temps

Résolu/Fermé
Hayato - Modifié le 29 nov. 2022 à 11:51
mamiemando Messages postés 33081 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 avril 2024 - 29 nov. 2022 à 14:59

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 155 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 27 avril 2024 40
Modifié le 28 nov. 2022 à 15:19

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 33081 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 avril 2024 7 749
29 nov. 2022 à 11:55

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 155 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 27 avril 2024 40 > mamiemando Messages postés 33081 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 avril 2024
29 nov. 2022 à 12:26

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 33081 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 avril 2024 7 749 > Diablo76 Messages postés 155 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 27 avril 2024
Modifié le 29 nov. 2022 à 15:20

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 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
28 nov. 2022 à 12:12

un exemple:

x="10,2,40,3,2"
y=x.split(",")
print (y)
for  n in y:
    print(n)
1
Whismeril Messages postés 19030 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 27 avril 2024 931
28 nov. 2022 à 12:14

Bonjour 


un petit peu de lecture

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


0