3

したがって、ファイルから読み取り、その各行をリストに入れたいと思っています。

次の 3 行の数字/小数を含む MyFile.txt または MyFile.csv という名前のファイルがあるとします。

49.55,2,77.09,18,1,2.34,32.11
33,11.22,33.21,56,76.55
8,9,44.7,90.99,12.21,1.01

プログラムにファイルを開き、1行目を読み取ってリストに入れさせたいです〜L1listと言います。次に、2 行目と 3 行目の L2list & L3list を作成します。それが完了したら、リスト、平均、最大、最小などの合計を計算できるようにしたいと考えています。 )、len()、max()、min()など。

私が立ち往生しているのは、リストの作成です。間違った合計、長さなどを取得しています。おそらくフルストップまたはコーナーだと思いました。しかし、私は小数点以下の桁数が必要であり、思考リストは角を区切る必要があります。

これまでのところ、私は試しました:

filename = 'MyFile.txt' 
fin=open(filename,'r')
L1list = fin.readline()
L2list = fin.readline()
L3list = fin.readline()

また:

L1list.append(fin.readline())

一緒に:

L1list = [i.strip().split() for i in fin.readlines()]

何がうまくいかないのかについて少し立ち往生しています。

4

3 に答える 3

5

では、コードの何が問題になるのでしょうか? 次のようなものを試してみてください:

L1list = [map(float, i.strip().split(',')) for i in fin.readlines()]

またはデータチェック付き:

with open(filename,'r') as fin:
    values = [map(float, [x for x in line.strip().split(',') if x]) for line in fin] 

また、 csv モジュールを見ることもできます

于 2012-11-06T03:49:56.700 に答える
1

次のようなものが必要だと思います:

L1list = map(float, fin.readline().strip().split(","))
于 2012-11-06T03:51:03.277 に答える
1
>>> '49.55,2,77.09,18,1,2.34,32.11'.split(',')
['49.55', '2', '77.09', '18', '1', '2.34', '32.11']

何が起こっているのか見てみてくださいprint

また、より複雑な CSV ファイルにはhttp://docs.python.org/2/library/csv.htmlを使用することもできます。

于 2012-11-06T03:52:18.073 に答える