Я сравниваю 2 файла с начальным столбцом идентификатора, начальным значением и конечным значением. Второй файл содержит соответствующие идентификаторы и другой столбец значений.Поиск значения в словаре диапазонов - python
Ex.
Файл 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))
я затем пройти через второй файл и поиск значения в словаре диапазонов: Ex.
if Identifier in Dictionary:
if Value in Dictionary[Identifier]:
OutFile.write(Line + "\n")
Пока не оптимально это работает для относительно небольших файлов, однако у меня есть несколько больших файлов, и эта программа оказывается очень неэффективной. Мне нужно оптимизировать мою программу, чтобы она работала намного быстрее.
ли идентификаторы появляются в том же порядке, в обоих файлах? Всегда ли значения и диапазоны в отсортированном порядке? – unutbu