0
votes

Comment diviser le contenu d'un élément arrary existant en python

Le code ressemble à ceci

['ID', '2020', 'Sugar', '3']

Et la sortie est

['ID:2020', 'Sugar:3']

Maintenant, je veux effectuer à nouveau le fractionnement de sorte que la sortie ressemble à:

txt = "ID:2020,Sugar:3,cost_sugar:30,ID:2021,Sugar:5,cost_sugar:50"
x = str(txt.split(","))


2 commentaires

Veuillez publier un MCVE. Le code que vous montrez ici ne fait pas ce que vous dites.


veuillez fournir un exemple reproductible minimal


5 Réponses :


-2
votes

vous pouvez utiliser une liste pour obtenir d'abord la clé et les valeurs, puis imprimer la liste


1 commentaires

Sans un exemple, cela ne dit rien d'utile



0
votes

Une autre solution consiste à utiliser regex

>>> import re
>>> re.split(",|:", txt)
['ID', '2020', 'Sugar', '3', 'cost_sugar', '30', 'ID', '2021', 'Sugar', '5', 'cost_sugar', '50']


0 commentaires

0
votes

Le module re de Python a une fonctionnalité intéressante

import re
re.split(':|,',txt)


0 commentaires

0
votes

J'aime les réponses fournies par les gens en utilisant le module re . Voici une autre façon de faire cela:

txt.replace(":", ",").split(",")

Essentiellement, vous traitez ":" comme un "," , alors pourquoi ne pas d'abord remplacer le ":" par un "," puis séparer?


0 commentaires

0
votes

Vous pouvez utiliser soit le code ci-dessous lié à votre projet, soit c'est un bon exemple si vous apprenez la première fois. Le premier utilise la liste. Le second utilise re .

import re
txt = "ID:2020,Sugar:3,cost_sugar:30,ID:2021,Sugar:5,cost_sugar:50"
returnlist = re.split(':|,', txt)
print(returnlist)

OU

txt = "ID:2020,Sugar:3,cost_sugar:30,ID:2021,Sugar:5,cost_sugar:50"
returnlist = []
for x in list(txt.split(",")):
  for fullkey in list(x.split(":")):
    returnlist.append(fullkey)

print(returnlist)


0 commentaires