0
votes

Avoir du mal à convertir une liste de chaînes en chiffres

J'ai donc reçu une liste ici: xxx pré>

et je veux que sa sortie soit ceci afin que tous les numéros de ma liste soient maintenant "flotteurs" mais de la chaîne toujours: P >

list1 = [float(x) for x in list1 if is_number(x)]

list1 = [str(x) for x in list1]


2 commentaires

[str (float (x)) si x.lstrip ('-'). ISDigit () Sinon x pour x dans la liste1] modifié ltrim () au correct < Code> lstrip ()


@Stevenrumbalski Damn qui est incroyable, c'est plus court que les autres mecs Thx Babe


3 Réponses :


3
votes

Vous pouvez utiliser une expression régulière: xxx

sortie: xxx


0 commentaires

0
votes

Vous pouvez utiliser l'essai / sauf la déclaration pour tenter une conversion et renvoyer les chaînes d'origine quand elle échoue:

def floater(s):
    try:    return str(float(s))
    except: return s

list1 = ["yo dog", "-2", "it's ya boi", "jake", "69.420"]

result = list(map(floater,list1))

print(result)
['yo dog', '-2.0', "it's ya boi", 'jake', '69.42']


0 commentaires

1
votes
list1 = ["yo dog", "2", "it's ya boi", "jake", "69.420"]

float_list = []

for string in list1:
    try:
        float_list.append(str(float(string)))
    except ValueError:
        #float_list.append(string) # if you want to keep string
        pass # if you don't want the string

print(float_list)

1 commentaires

Cela ajoutera des flotteurs et une optique qui veut toujours des chaînes