ファイルを読み込んでdictionaryにする(Python3)
ソース
In [1]: import codecs In [2]: dict([line.rstrip().split("\t") for line in codecs.open("branch.tsv", "r", "utf-8")]) Out[2]: {'001': '北海道支店', '010': '東京支店', '011': 'さいたま支店', '043': '宮崎営業所', '050': '沖縄支店'}
branch.tsv
010 東京支店 011 さいたま支店 001 北海道支店 050 沖縄支店 043 宮崎営業所
keyとvalueを入れ替える
ソース
In [1]: import codecs In [2]: dict([line.rstrip().split("\t")[::-1] for line in codecs.open("branch.tsv", "r", "utf-8")]) Out[2]: {'さいたま支店': '011', '北海道支店': '001', '宮崎営業所': '043', '東京支店': '010', '沖縄支店': '050'}
[::-1]で、辞書変換前のリストを逆順にしている。
5列あるテキストの2列目と4列目を使ってdictionaryを作る
ソース
In [1]: import codecs In [2]: dict([line.rstrip().split("\t")[1:4:2] for line in codecs.open("branch2.tsv", "r", "utf-8")]) Out[2]: {'001': '北海道支店', '010': '東京支店', '011': 'さいたま支店', '043': '宮崎営業所', '050': '沖縄支店'}
リストのスライスがポイント。
[1:4:2]は、1以上4未満のindexのリストの要素を、2つに1つ使うと解釈する。
branch2.tsv
A001 010 1 東京支店 true A001 011 1 さいたま支店 true A002 001 1 北海道支店 false A004 050 0 沖縄支店 true A005 043 0 宮崎営業所 true