0

これまでのところ、私はこれを持っています:

def main():
        bad_filename = True
        l =[]
        while bad_filename == True:
            try:
                filename = input("Enter the filename: ")
                fp = open(filename, "r")
                for f_line in fp:
                    a=(f_line)
                    b=(f_line.strip('\n'))
                    l.append(b)
                    print (l) 
                bad_filename = False
            except IOError:
                print("Error: The file was not found: ", filename)




main()

これは私のプログラムであり、これを印刷すると得られるものです

['1,2,3,4,5']
['1,2,3,4,5', '6,7,8,9,0']
['1,2,3,4,5', '6,7,8,9,0', '1.10,2.20,3.30,0.10,0.30']

しかし、代わりに私は得る必要があります

[1,2,3,4,5]
[6,7,8,9,0.00]
[1.10,2.20,3.3.0,0.10,0.30]
4

1 に答える 1

0

ファイルの各行はコンマで区切られた一連の数字ですが、Python にとっては単なる文字です。文字列をリストに入れるには、もう 1 つの変換ステップが必要です。最初にコンマで分割して、それぞれが数値である文字列のリストを作成します。次に、いわゆる「リスト内包表記」(またはforループ) を使用して、各文字列を数値に変換します。

b = f_line.strip('\n').split(',')
c = [float(v) for v in b]
l.append(c)

ループのたびにリストを本当にリセットしたい場合(目的の出力は最後の行のみを表示します)、追加する代わりに、数値リストをl次のように割り当てます。

b = f_line.strip('\n').split(',')
l = [float(v) for v in b]

リスト内包表記は、次の簡単な言い方です。

l = []
for v in b:
    l.append(float(v))

andaの割り当てを囲む余分な括弧は必要ありません。ab

于 2013-10-28T19:30:05.667 に答える