3
に一致する私は、次の形式で「辞書」テキストファイルがあります。パイソン - 反復辞書は
D1 2 1 3 4 78.5
D2 2 3 4 5 100.2
D3 2 1 5 6 35.2
...
私は出力:
1 CH a
2 H1 a
3 H2 a
4 H3 b
5 CO b
6 HA b
...
を、私はこのようになり、入力ファイルを持っています取得しようとしている:
a H1 a CH a H2 b H3 78.5
a H1 a H2 b H3 b CO 100.2
a H1 a CH b CO b HA 35.2
辞書ファイルを、最初の列をkとする列に分割しようとしていますeyと2番目と3番目の列を値として返します。次に、入力ファイルを列で読み取り、列[1:4]の数値を以前に生成されたキーと一致させ、対応する値を出力します。入力ファイルの最後の列については、識別子に値と一致する別のキー/値のペア(たとえば、key=4, value=78.5
)を作成しました。
file = open("dictionary.txt", "r")
one_dict = dict()
two_dict = dict()
for line in file:
fields = line.split(" ")
number = fields[0]
name = fields[1]
letter = fields[2]
one_dict[int(number)] = [letter, name]
with open('input.txt') as infile:
for line in infile:
fields = line.split("\t")
value = fields[6]
col_4 = fields[4]
two_dict[int(col_4)] = [value]
for x in fields[1: 3]:
if x in one_dict:
output[x] = one_dict[x]
for col_4 in fields:
if x in one_dict:
col_4 = one_dict[x[value]]
print(output[x], output4[x], two_dict[col_4])
私のスクリプトは何も返されず、理由はわかりません。
をこれは 'とほとんど些細なことだろうpandas'ですが、単に 'csv'で行うことができるはずです... –
このコードでは決して出力を定義しません。他の場所で定義されていると思います。より完全なコード例を投稿できますか? –
字下げの問題があるようです。例えば、 'field'を参照するforループはforループの本体の外側にあるように見えます。コードスニペットを正しい字下げにするように再フォーマットできますか? – JeremyKun