文件a.txt
Zm00001eb093920 Zm00001eb336500
. . . . . .
Zm00001eb229510 Zm00001eb209800
. . . . . .
Zm00001eb336500 Zm00001eb093920
Zm00001eb209800 Zm00001eb229510
怎样得到
想得到结果文件b.txt
Zm00001eb093920 Zm00001eb336500
Zm00001eb229510 Zm00001eb209800
或者b.txt
Zm00001eb033650 Zm00001eb093920
Zm00001eb209800 Zm00001eb229510
有点深奥,看不懂题
懂了,你是想左边和右边一样是吧
file = open('a.txt')
val_list = file.readlines()
lists =[]
for string in val_list:
string = string.split(' ',2)
string[1] = string[1].replace('\n','')
lists.append(string[0:2]) #只取每个string的前两项,得到的lists即为所要的列表
arrs = lists
res = []
res.append(arrs[0])
flag = False;
for i in arrs:
flag = False;
print('i-->toTest',i)
for j in res:
print('j-->',j,'i-->',i,(i[0]==j[0] and i[1]==j[1])or(i[0]==j[1] and i[0]==j[1]))
if((i[0]==j[0] and i[1]==j[1])or(i[0]==j[1] and i[0]==j[1])):
flag = False;
break;
else:
flag = True;
if(flag):
print('i-->toAppend',i)
res.append(i);
print(res)
sets = set()
lists = []
with open(r'a.txt','r') as rf:
for line in rf:
tu = tuple(sorted(line.strip().split(" ")))
if tu not in sets:
sets.add(tu)
lists.append(line)
print(*lists, sep='\n')
with open(r'b.txt','w') as wf:
wf.writelines(lists)
>>> content = list()
>>> with open(r'd:\a.txt', 'r') as fp:
for line in fp.readlines():
content.append(tuple(set(line.strip().split())))
>>> content = list(set(content))
>>> with open(r'd:\b.txt', 'w') as fp:
fp.write('\n'.join([' '.join(line) for line in content]))
31
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632