sim的排列是0和1交叉,但不是标准的一个0一个1的形式。任务就是将a,b,sim按照标准的形式排列,并且需注意无法确定0,1的个数是1:1的(实际上1要多一些)
代码:
f0 = open('/home/xbwang/Desktop/a','r') f1 = open('/home/xbwang/Desktop/b','r') f2 = open('/home/xbwang/Desktop/c','r') pos =[] 这种用列表去存储的思想,列表变量必须先这样声明 neg =[] a = f0.readlines() b = f1.readlines() c = f2.readlines() length = len(a) for i in range(length): if(c[i] == '1 '): pos.append(a[i]+'==='+b[i]+'==='+c[i]) else: neg.append(a[i]+'==='+b[i]+'==='+c[i]) lenp = len(pos) lenn = len(neg) if(lenp>=lenn): length1=lenn else: length1=lenp f3 = open('/home/xbwang/Desktop/a.toks','a') f4 = open('/home/xbwang/Desktop/b.toks','a') f5 = open('/home/xbwang/Desktop/c.toks','a') for j in range(length1): line1 = pos[j].split('===') f3.write(line1[0]) f4.write(line1[1]) f5.write(line1[2]) line2 = neg[j].split('===') f3.write(line2[0]) f4.write(line2[1]) f5.write(line2[2]) if(lenp>=lenn): for k in range(length1,lenp): line3 = pos[k].split('===') f3.write(line3[0]) f4.write(line3[1]) f5.write(line3[2]) else: for l in range(length1,lenn): line3 = neg[k].split('===') f3.write(line3[0]) f4.write(line3[1]) f5.write(line3[2])