レコードを生成する一般的な解決策は、おそらく不完全、各id
ため、それは3つのファイルを処理するスロット
の事前に割り当てられた数と、幸いリストだけである特殊なデータ構造の使用を必要と遭遇
d = {id:[name,None,None] for id, name in [line.strip().split(',') for line in open(fn1)]}
for line in open(fn2):
id, cost = line.strip().split(',')
if id in d:
d[id][1] = cost
else:
d[id] = [None, cost, None]
for line in open(fn3):
id, desc = line.strip().split(',')
if id in d:
d[id][2] = desc
else:
d[id] = [None, None, desc]
for id in d:
if all(d[id]):
print ','.join([id]+d[id])
else: # for this id you have not complete info,
# so you have to decide on your own what you want, I have to
pass
あなたはさらにプロセス不完全なレコードを望んでいないことが確実な場合は、上記のコードは
d = {id:[name] for id, name in [line.strip().split(',') for line in open(fn1)]}
for line in open(fn2):
id, cost = line.strip().split(',')
if id in d: d[id].append(name)
for line in open(fn3):
id, desc = line.strip().split(',')
if id in d: d[id].append(desc)
for id in d:
if len(d[id])==3: print ','.join([id]+d[id])
そして、何あなたがそうFAを試してみましたが簡素化することができますr?あなたのコードを私たちに示してください。そうすれば、あなたを助けることができます。 –
私が試みたのは、3つのファイルからのデータを辞書に結合して書き込むことですが、エラーが発生しています。以下のコードでは、行[1]をキーとし、行[2]、行[3]を値として辞書にファイルを書き込みます。しかし、同じ辞書に別のファイルを追加することはできません。 TEXT_FILE = csv.reader TEXT_FILEの行のための(ファイル) 次(TEXT_FILE) : maindict [行[1ファイルとしてオープン( 'train_1.csv'、R ''、エンコーディング= "UTF8")と ]] = rows [2]、rows [3] – Sameer
@Sameerあなたの質問をそのコードで編集したいと思うかもしれません。 – kirkpatt