0

目的: データ ファイル (数値) の読み取り、配列/リストの作成 問題: 各数字は配列として形成されますが、代わりに値全体を 1 つの配列/リストとして必要とします

入力データ ファイル (1.txt) : 2 つの列がタブ ギャップで区切られている

0.85787 0.8E-03

0.8578 45.8E-03

0.857878 5.8E-03

0.657878 2.3E-03

…………

crs = open("1.txt","r")
for line in crs:
 x = line.split()
 k=str(x[0]) # string to avoid spacing problem
 v=str(x[1])
 print k[0]

k[0] は、最初の数字のみをリストします。つまり、

0

0

0

0

0

しかし、私の要件は k[0] に 0.85787 を格納することです .... k[3] に 0.657878 ....

および v[0] の 0.8E-03 ...... v[3] の 2.3E-03 .... さらにそれを使用します。重要なことに、空のスペース/ギャップはありません。

提案を歓迎します。

4

1 に答える 1

0

データの 2 つの列に対して個別のリストを作成する必要がある場合、最も簡単な方法は、ループを開始する前にリストを作成し、ファイルをループするときにリストに追加することです。

k = []
v = []
with open("1.txt", "r") as crs:
    for line in crs:
        x = line.split()
        k.append(x[0]) # use float(x[0]) if you want numbers rather than strings
        v.append(x[1])

より「Pythonic」な (しかし、おそらく理解するのがより難しい) 解決策は、ジェネレータ式とzip関数を使用して 2 つのリストを同時に作成することです。

with open("1.txt", "r") as crs:
    k, v = zip(*(line.split() for line in crs))
于 2012-12-06T03:26:50.250 に答える