【发布时间】:2013-03-13 17:44:04
【问题描述】:
我将 2 个文件与初始标识符列、起始值和结束值进行比较。第二个文件包含相应的标识符和另一个值列。
例如。
文件 1:
A 200 900
A 1000 1200
B 100 700
B 900 1000
文件 2:
A 103
A 200
A 250
B 50
B 100
B 150
我想从第二个文件中查找包含在第一个文件中找到的范围内的所有值,以便我的输出如下所示:
A 200
A 250
B 100
B 150
现在我已经从第一个文件中创建了一个包含范围列表的字典: 例如。
if Identifier in Dictionary:
Dictionary[Identifier].extend(range(Start, (End+1)))
else:
Dictionary[Identifier] = range(Start, (End+1))
然后我浏览第二个文件并在范围字典中搜索值: 例如。
if Identifier in Dictionary:
if Value in Dictionary[Identifier]:
OutFile.write(Line + "\n")
虽然这不适用于相对较小的文件,但我有几个大文件,而且这个程序被证明是非常低效的。我需要优化我的程序,让它运行得更快。
【问题讨论】:
-
标识符在两个文件中出现的顺序是否相同?值和范围是否始终按排序顺序排列?
标签: python dictionary range