-6
votes

Comment supprimer une chaîne d'une liste Python

est-il possible de supprimer la chaîne et d'avoir simplement la liste xxx

aimerait qu'il ressemble à ce xxx


5 commentaires

Qu'essayez-vous, quels problèmes avez-vous?


La liste des données 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 (",') Après avoir corrigé votre data (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)


4 Réponses :


5
votes
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). 

1 commentaires

Merci pour l'aide mais ceci est divisé les données au "," mais je suis juste en train d'essayer de supprimer cette encape ""



4
votes
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

2 commentaires

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?



0
votes

Split chaque chaîne (cela vous donne un tableau des segments entre "," dans chaque chaîne): xxx

et ajoutez les tableaux ensemble


0 commentaires

0
votes

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]


0 commentaires