こんにちは。pythonでの数字列の照合方法についてお伺いしたく、質問させていただきます。
まず、こちらは以前教えていただいたコードです。
python
hoge_dict = {}
for line in f1:
hoge_dict[line.split(';')[0]] = line.rstrip()for line in f2:
line = line.rstrip()
if line in hoge_dict:
f3.write(str(hoge_dict[line]) + '\n')
print(hoge_dict[line])
LouiS0616さんありがとうございます。
これは、f1に以下のような数字が入っており、
123456;7898553
145454;4538573
123456;4598295
:
:
f2に以下のような数字が入っています
134315
123456
:
そしてf1の;より左側と、f2の数字が一致したらf1の内容を出力し、f3
に書き込むというコードでした。
①今度はこれをf1の両側がf2に含まれている場合のみ、f1の内容を出力というものにしたいです。そのコードについて、自分で書いてみたのですが、見当違いだと思うので教えていただきたいです。
②f1の内容が
123457465786 134354365436 435435 341535 12344 1123456 343534
:
のように7つのデータになり、かつタブ区切りになった場合6番目の数字とf2が一致した場合新しいファイルに書き込む方法を教えていただきたいです。(f2のファイルには途中空行が混ざっている場合があるのでtry分で処理しています)
こちらは自分で以下のようなコードを書きましたが、エラーは出ずに実行されるのですがファイルに書き込まれていませんし、print分の内容も表示されません。わかる方、教えていただきたいです。
python
1hoge_dict = {} 2 3try: 4 for line in f1: 5 hoge_dict[line.split('\t')[5]] = line.rstrip() 6 7except: 8 pass 9 10else: 11 for line in f2: 12 line = line.rstrip() 13 if line in hoge_dict: 14 f3.write(str(hoge_dict[line]) + '\n') 15 print(hoge_dict[line]) 16
たぶ区切りの5番目と照合、これではなぜ駄目なのでしょうか?
理由もわからないです。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー