0

私はPythonを始めたばかりです。どんな提案でも大歓迎です。別のプログラムによって生成されたテーブルを読み込んで、各行から 2 つの数字を取り出しています。それらを a と b と呼びます。(それらはフラックスとして保存され、プログラムで観察されます) 各行からこれらの 2 つの数値を取得し、次のようにフォーマットする必要があります-

(a,b),(a,b),(a,b) ect. 

連続する各括弧は連続する行からのもので、最初の a,b は 1 行目から、2 番目の a,b は 2 行目などです。テーブル全体を読み取る必要がありますが、テーブルの長さは異なります。

これは私がこれまでに持っているものです。テーブルを読み取って必要な数値を引き出すことができますが、数値を適切な形式に変換する方法がわかりません。再帰的なものが最も効率的だと言いたいのですが、それを行う方法がわかりません。前もって感謝します。

#!/usr/bin/python

file = open("test_m.rdb")

 while 1:
    line = file.readline()
    i = line.split()
    flux = i[2]
    observed = i[4]
    if not line:
        break
4

3 に答える 3

1
with open("test_m.rdb") as inf:
    results = [(i[2],i[4]) for i in (line.split() for line in inf)]

result_string = ",".join(str(res) for res in results)

またはより一般的なフォーマッタ:

result_string = ", ".join("('{2}', '{4}')".format(*res) for res in results)
于 2012-06-01T21:38:22.153 に答える
0

非常に簡単な解決策:

with open('data') as data:
    print ', '.join('(%s, %s)' % (x.split()[2], x.split()[4])
                    for x in data.readlines())

readlinesファイルの行を反復処理するために使用するだけです。

于 2012-06-01T23:07:15.837 に答える
0

取得した 2 つの値が str1 と str2 であると仮定します
//値を反復するループ内
strTable = strTable + ['('+str1+')','('+str2+')']

oitが機能することを願っています。機能しない場合は、コメントしてください。解決します。

于 2012-06-02T16:16:56.737 に答える