Python – ValueError: could not convert string to float“: [9000]

Ich versuche zu verstehen, diese Fehlermeldung (Python 2.7). Ich sehe, es gibt andere, die haben diese Frage bisher nicht, aber ich verstehe nicht die Erklärungen gegeben also Frage ich nochmal.

Hier ist mein code:

import re
name = raw_input("Enter file:")
if len(name) < 1 : name = "file.txt"
handle = open(name)
y = list()
for line in handle:
    line = line.rstrip()
    if re.findall('[0-9]+', line) != [] :        
        y.append(re.findall('[0-9]+', line))
a = [map(int, b) for b in y]
for x in range(len(a)):
    if len(a[x]) == 1:
        b=str(a[x])
        c=float(b)
  • Können Sie einige links zu den vorherigen posts?
  • bitte gehen Sie durch hoffen, Sie finden Ihre Antworten: stackoverflow.com/questions/8420143/…
  • Es sieht aus wie Ihre versucht, konvertieren Sie die Zeichenfolge ‚[9000]‘ in ein schweben, das wird nicht funktionieren, weil es diese extra Klammern. Entweder können Sie dieses Problem beheben in der Datei, die Sie Lesen, oder Sie können entfernen Sie die Klammern durch Spleißen es aus: "[9000]"[1:-1] == "9000".
InformationsquelleAutor Robyn Johnson | 2017-03-19



One Reply
  1. 1

    sehen Sie, was passiert, wenn Sie drucken mehr oft

    haben Sie erstellt eine Liste von Listen

    so ein[x] ist selbst eine Liste

    wenn Sie stringify die Liste seiner ‚[9000]‘

    so, man kann nicht einen float aus, weil seine nicht eine Reihe

    müssten Sie Streifen die Klammern; oder nicht erstellen Sie eine Liste von Listen beginnen mit

    mit Ihrem Beitrag als input:

    import re
    handle = '''
    Python - ValueError: could not convert string to float: [9000]
    Ask Question
    up vote
    0
    down vote
    favorite
    
    
    I am trying to understand this error message (Python 2.7). I see there are 
    others who have asked this question previously, but I do not understand the 
    explanations given there so I am asking again. Here is my code. Yes, I am a 
    newbie trying to learn the basics so please keep that in mind when you answer.
    There's a reason I haven't been able to understand previous posts.
    '''
    y = list()
    print y
    for line in handle:
        line = line.rstrip()
        if re.findall('[0-9]+', line) != [] :        
            y.append(re.findall('[0-9]+', line))
    
    print y
    a = [map(int, b) for b in y]
    print a
    for x in range(len(a)):
        if len(a[x]) == 1:
            b=str(a[x])
            print b
            c=float(b)

    gibt:

    []
    [['9'], ['0'], ['0'], ['0'], ['0'], ['2'], ['7']]
    [[9], [0], [0], [0], [0], [2], [7]]
    [9]
    Traceback (most recent call last):
      File "test4.py", line 31, in <module>
        c=float(b)
    ValueError: could not convert string to float: [9]

    Ich bin mir nicht sicher, was dein Ziel ist, aber wenn Sie dies getan haben:

    b=str(a[x][0])
    print b
    c=float(b)

    wäre es Arbeit und zurück

    9
    0
    0
    0
    0
    2
    7
    • Vielen Dank, das ist eine gute Erklärung für die Fehlermeldung mit Bezug auf die Liste der Listen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.