この回答は、入力が論理的に値の袋であること、つまり値がカウントされることを前提としていますが、それらの位置は重要ではありません。また、イニシエータファイルよりも他のファイルに大きな量が含まれていても問題ないと想定していますが、その逆は当てはまりません。最後に、イニシエータファイルの値のみが他のファイルに表示されることが許可されていると想定しています。
① 両方のファイルを読み取り、 ②それぞれの内容を (おそらくスペースで?)バッグに分割します(これに使用collections.Counter
します) 。 .
①両方のファイルを読む:
with open('initiator') as f:
contentsI = f.read()
with open('other') as f:
contentsO = f.read()
② コンテンツをセットに分割し、その過程で不要なものをすべて削除します。
from collections import Counter
tokensI = Counter(value for value in contentsI.split()
if value not in [ 'unwanted1', 'unwanted2' ])
tokensO = Counter(value for value in contentsO.split()
if value not in [ 'unwanted1', 'unwanted2' ])
③ & ④ バッグを比較する:
return not (tokensI - tokensO) and not (set(tokensO) - set(tokensI))