我正在学习python(2.7)并尝试打印两个文件范围,如果它们重叠的话。你知道吗
在文件input1.txt中,我有-
p1234: 4-5, 7-12, 15-19
p5678: 7-59, 78-345
p4356: 3-4, 6-10
在文件input2.txt中-
p1234: 1-3, 6-13, 16-20, 22-25
p4356: 9-10
从这两个输入文件中,我只想在两个输入文件中保留每个id(每个文件中最左边的列)彼此重叠的范围,而放弃其他范围。你知道吗
也就是说,两个输出文件如下所示:
output1.txt-
p1234: 7-12, 15-19
p4356: 6-10
output2.txt-
p1234: 6-13, 16-20
p4356: 9-10
我了解到,要只打印那些重叠的范围,我可以使用:
x = range(1,10)
y = range(8,20)
intersection = [i for i in x if i in y]
try:
print x
print y
except NameError:
print intersection
这就产生了:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
我可以从这里得到两个文件之间的范围(虽然最后一个数字没有显示),但是我不知道如何在匹配两个输入文件的id(两种输出文件格式)之后只打印两个输入文件中重叠的区域。请帮忙。你知道吗
谢谢你的考虑。你知道吗
正如我在评论中所建议的,并进一步使用您已经开始的内容。以该函数为例:
我想你知道该怎么办!:)
更新:
好吧,这个有点太复杂了,但我还是会贴出来的。 假设您将文件读入元组(startpos,endpos),您可以找到如下值:
相关问题 更多 >
编程相关推荐