두 개의 서로 다른 파일에서 [1] 행에 일반적인 교차 ID를 찾으려는 코드를 작성했습니다. 내 작은 샘플 파일을 확인 작동하지만 내 큰 파일을 않습니다. 왜 그런지 모르겠다. 뭐가 잘못 됐는지 제안 해 줄 수 있니? 정확한 문제는 입력 값이 200 일 때입니다. 즉, 교차로를 90 개 부여합니다. 150으로 축소하면 교차로가 110이되고 논리적으로는 더 높을 수 없습니다.두 사전에서 공통 ID (교차) 찾기
내 파일 1이 선으로 정렬됩니다fileA = open("file1.txt",'r')
fileB = open("file2.txt",'r')
output = open("result.txt",'w')
#fileA.next()
dictA = dict()
for line1 in fileA:
listA = line1.split('\t')
dictA[listA[1]] = listA
dictB = dict()
for line1 in fileB:
listB = line1.split('\t')
dictB[listB[1]] = listB
for key in set(dictA).intersection(dictB):
output.write(dictB[key][0]+'\t'+dictA[key][1]+'\t'+dictA[key][4]+'\t'+dictA[key][5]+'\t'+dictA[key][9]+'\t'+dictA[key][10]+'\n')
[0] 0-15 선이, 난 단지 라인을 넣어 예를 들어 줄 여기 간단하게하기 [0] 라인 [1],
contig17 GRMZM2G052619_P03 x x x x x x x x x x x x x x
contig33 AT2G41790.1 x x x x x x x x x x x x x x
contig98 GRMZM5G888620_P01 x x x x x x x x x x x x x x
contig102 GRMZM5G886789_P02 x x x x x x x x x x x x x x
contig123 AT3G57470.1 x x x x x x x x x x x x x x
내 파일 2 정렬 0-10 선이 아니고, I는, [1]
y GRMZM2G052619_P03 y y y y y y y y
y GRMZM5G888620_P01 y y y y y y y y
y GRMZM5G886789_P02 y y y y y y y y
내 원하는 출력 라인만을 제공
contig17 GRMZM2G052619_P03 y y y y
contig98 GRMZM5G888620_P01 y y y y
contig102 GRMZM5G886789_P02 y y y y
키가 실제로 일치하고 실제로 '\ t'로 구분되어 있습니까?누락 된 공백이나 다른 공백이있어 "동일한"키가 일치하지 않을 수 있습니다. – beerbajay
내 파일 2 일부 누락 된 데이터가 있지만 어쨌든 탭으로 구분됩니다. 어떻게 개선할까요? – user3224522
'.split ('\ t')'을'.split()'으로 변경할 수 있습니다. 모든 공백과 탭을 나눕니다. – MostafaR