est-il possible de supprimer la chaîne et d'avoir simplement la liste aimerait qu'il ressemble à ce p>
4 Réponses :
out = [] for x in data: for e in x.split(","): out.append(e) What does this do? It splits each element (x) in data on the comma, picks out each of those separate tokens (e), and puts them in the variable (out.append).
Merci pour l'aide mais ceci est divisé les données au "," mais je suis juste en train d'essayer de supprimer cette encape ""
new_data = [] for i in data: strings = i.split(',') for s in strings: if (len(s)>0): try: num = int(s) except ValueError: try: num = float(s) except ValueError: num = s new_data.append(num) new_data
Merci de l'aide mais je reçois cet oiseau '50' 'oiseau' 'oiseau' '' 105.4 '' 75 '' CAT '' '' Cat ''10 .3,' '100' 'chien' '' 1000.5 '' 1000.5 ''
Vous voulez dire que vous voulez transformer les chiffres dans la chaîne en chiffres?
Split chaque chaîne (cela vous donne un tableau des segments entre "," dans chaque chaîne): et ajoutez les tableaux ensemble p> p> P>
Parce que chaque chaîne de la liste a une virgule de fuite, vous pouvez simplement le remettre en une seule chaîne et diviser à nouveau sur des virgules. Afin d'obtenir des éléments numériques réels dans la liste résultante, vous pouvez le faire:
import re data = [ "50,bird,corn,105.4," "75,cat,meat,10.3," "100,dog,eggs,1000.5," ] numeric = re.compile("-?\d+[\.]\d*$") data = [ eval(s) if numeric.match(s) else s for s in "".join(data).split(",")][:-1] data # [50, 'bird', 'corn', 105.4, 75, 'cat', 'meat', 10.3, 100, 'dog', 'eggs', 1000.5]
Qu'essayez-vous, quels problèmes avez-vous?
La liste des données
code> est incorrectement formatée. Comment êtes-vous arrivé à votre structure de données initiale?
J'essaie des données [1] .strip ("") n'a pas fonctionné - pas sûr de ce qui peut être utilisé
Entrée = Ouvrir (data.txt, 'r') données = entrée.read (). SplitLines ()
mots = ', "joindre (données) .split (",') code> Après avoir corrigé votre
data code> (c'est la façon lazye de le faire - cela crée une grande chaîne séparé par, puis scinder, - moins efficace alors la réponse postée)