-2

*編集、この質問をもう一度言い直しました。うまくいけば、以前ほど愚かではありません!

アクセッション番号と種名を照合する辞書を作成したいと考えています。ファイルを次のようにフォーマットしました。

'AM158981':ブルセラ、ピニペディアリス、ブルセラ科、'AM158980':ブルセラ、スイス、ブルセラ科

'AM158982':ブルセラ、セチ、ブルセラ科、'AM158979':ブルセラ、アボルタス、ブルセラ科

等......

このファイルを開いて辞書にしたいです。私はこれを書いて、それを開いて、アクセッション番号を辞書のキーにしました。

#! /usr/bin/env python

reader = open("acsn.txt")

result = {}
for row in reader:
    key = row[0]
    if key in result:
        pass
    result[key] = row[1:]
print result

「key = row[0]」行は、アクセッション番号の最初の文字をキーにしています。[0] を使用すると文字列の最初の文字が返されるだけですが、最初の「単語」(AM158981 など) がキーになるようにする方法がわかりません。

ありがとう!

4

2 に答える 2

2

Python コード:

data = """>D50541 Abiotrophia defectiva Aerococcacea
>AB303221 Acanthopleuribacter pedis Acanthopleuribacteraceae
>AJ812213 Acaricomes phytoseiuli Micrococcaceae"""

dict(row[1:].split(" ", 1) for row in data.split("\n"))

出力:

{'AB303221': 'Acanthopleuribacter pedis Acanthopleuribacteraceae',
 'AJ812213': 'Acaricomes phytoseiuli Micrococcaceae',
 'D50541': 'Abiotrophia defectiva Aerococcacea'}

編集

ファイルからデータを読み取る場合は、次のinput.txtようにします。

dict(row[1:].split(" ", 1) for row in open("input.txt").read().split("\n") if row)
于 2013-05-23T15:04:54.780 に答える