を組み合わせ、並べ替え:結果としてデータは、私はこの方法を探して、ファイル持っている2行
;1;108/1;4, 109
;1;51;4, 5
;2;109/2;4, 5
;2;108/2;4, 109
;3;108/2;4, 109
;3;51;4, 5
;4;109/2;4, 5
;4;51;4, 5
;5;109/2;4, 5
;5;40/6;5, 6, 7
;id1;id2;position_on_shelf_id2
;id1;id3;position_on_shelf_id3
を、私は取得したい: ID1、ID2、ID3; X をここで、xはid2とid3の共通シェルフ位置です。これは次のようになります。
1;108/1-51;4
2;109/2-108/2;4
3;108/2-51;4
4;109/2-51;4, 5
5;109/2-40/6;5
my script work私は共通の棚の位置を入力する必要がある瞬間まで罰金。私は交差点を使用しようとしましたが、二重の文字(ポジション:144-結果:14、ポジション:551、結果:51、ポジション:2222-結果:2 ie)を持つポジションを持っていると正しく動作しません。
result = id2_chars.intersection(id3_chars)
交差点の修正はありますか?あなたの心にはもっと良い方法がありますか?これまで
コード:
その1 - すべての2番目の行をマージ一緒
exp = open('output.txt', 'w')
with open("dane.txt") as f:
content = f.readlines()
strng = ""
for i in range(1,len(content)+1):
strng += content[i-1].strip()
if i % 2 == 0:
exp.writelines(strng + '\n')
strng = ""
exp.close()
その2 - 交差点: EXP =オープン( 'output2.txt'、 'W')
imp = open('output.txt')
for line in imp:
none, lp1, dz1, poz1, lp2, dz2, poz2 = line.split(';')
s1 = poz1.lower()
s2 = poz2.lower()
s1_chars = set(s1)
s2_chars = set(s2)
result = s1_chars.intersection(s2_chars)
result = str(result)
exp.writelines(lp1 + ';' + dz1 + '-' + dz2 + ';' + result + '\n')
exp.close()
**私のニーズに合った結果はまだフィルタリングされていませんでしたが(「リスト」形式ですが)、正しい交差結果が得られたら問題にはなりません
これまであなたが持っているコードを含めてください。 – perigon
コードを追加しました(何文字か) – krizz