<p>我将文件1列为:</p>
<pre><code>-
er
we
ds,e3,kj
uy,mn
po
qw
pi
pi,f
</code></pre>
<p>文件2列为:</p>
<pre><code>-
df
we
wr
f,pi
ds,kj,e3
rt,uy
qw
po
</code></pre>
<p>我尝试了以下代码,但没有按预期工作:-</p>
<pre><code>my_set1 = set(x.strip() for x in (open('file1').readlines()))
print(my_set1)
my_set2 = set(x.strip() for x in (open('file2').readlines()))
print(my_set2)
my_list=list((set(my_set1).intersection(set(my_set2))))
print(my_list,"\n")
with open('common_signals','w') as file3:
for signal in my_list:
file3.write("%s\n" %signal)
</code></pre>
<p>我在公共信号中得到的输出是:<code>- po ,we ,qw</code></p>
<p>它忽略了<code>ds , kj</code>和<code>e3 ,uy,pi,f</code></p>
<p>有人能帮忙吗</p>
<p>这是因为在字符串的意义上,“ds,e3,kj”和“ds,kj,e3”是不相等的。
如果你需要比较这种类型的模式,把它们当作弦来对待,试着把它们按顺序排列,然后再比较</p>
<pre><code>if ',' in line:
line = ','.join(sorted(line.split(',')))
</code></pre>