3
votes

Fractionner une chaîne séparée par des virgules pour séparer des chaînes dans une liste en Python

J'ai une chaîne d'entrée comme celle-ci:

['pentavac-xim', 'revaxis', 'tetravac-xim']
['imovax polio', 'pediacel']
['act-hib', 'rage diploide']
['imogam rage pa', 'imovax polio']
['dt vax', 'tetavax']

Je veux que la chaîne de sortie s'affiche sous la forme:

pentavac-xim, revaxis, tetravac-xim
imovax polio, pediacel
act-hib, rage diploide
imogam rage pa, imovax polio
dt vax, tetavax

Le problème est quand J'utilise split sur la chaîne d'entrée, pour un produit qui doit être traité comme une seule chaîne, est converti en 2 chaînes séparées, exemple:

imogam rage pa = ['imogam', 'rage', ' pa '] qui est incorrect. Ça devrait être : ['imogam rage pa']. Comment résoudre ce problème


1 commentaires

Bienvenue dans Stack Overflow. Afin d'obtenir de l'aide avec votre code, veuillez le poster. Nous avons besoin de voir ce que vous avez fait pour expliquer comment y remédier.


4 Réponses :


4
votes

Vous pouvez essayer quelque chose comme:

input_string = 'pentavac-xim, revaxis, tetravac-xim'
output = input_string.split(', ')
print(output)

Sorties: ['pentavac-xim', 'revaxis', 'tetravac-xim']


6 commentaires

@Swordsman C'est super à entendre! Si cela a résolu votre problème, j'apprécierais que vous puissiez cliquer sur la coche à côté de mon message (pour l'accepter comme la réponse que vous recherchiez)


il en résulte l'espace supplémentaire dans chaque chaîne. Utilisez la fonction lstrip qui supprime l'espace de début de chaque sous-chaîne.


Ce n'est plus vrai, j'ai modifié la réponse pour faire un délimiteur ',' au lieu de ','


Ouais merci @ BenoîtPilatte


@Usman c'est une bonne prise que j'ai ratée, mais comme BenoîtPilatte l'a dit, il a déjà édité ma réponse pour corriger cette erreur


ok super (y) Merci @ BenoîtPilatte & Reedinationer



4
votes

La séparation entre virgules devrait être très bien. Cela devrait fonctionner correctement:

['imogam rage pa', 'imovax polio']

sortie:

some_string = "imogam rage pa, imovax polio"
print(some_string.split(', '))


2 commentaires

print (some_string.split (',')) fonctionne correctement. sinon, simplement split (',') ajoute un espace supplémentaire avant chaque chaîne. Bref, merci mec.


Bon point @Swordsman



3
votes

Si vous utilisez .split () sans aucun argument, il sera divisé en utilisant le caractère espace. Vous devez spécifier avec quel caractère vous souhaitez fractionner. Pour votre exemple, vous devez séparer avec le caractère virgule comme ceci

s = "imogam rage pa, imovax polio"
print(s.split(', '))
['imogam rage pa', 'imovax polio']


0 commentaires

4
votes

Utilisez la fonction de fractionnement qui divise la chaîne entière en sous-chaîne. J'utilise également la fonction lstrip qui supprime l'espace de début des sous-chaînes.

Code:

['pentavac-xim', 'revaxis', 'tetravac-xim'] 

Sortie:

string = 'pentavac-xim, revaxis, tetravac-xim'
value = input_string.split(',')
result = [i.lstrip() for i in output]
print(result)


1 commentaires

très bienvenu (y)