(редактировать)
Код: Выделить всё
post = {0: [0.96180319786071777, 0.37529754638671875],
10: [0.20612385869026184, 0.17849941551685333],
20: [0.20612400770187378, 0.17510984838008881],...}
pre = {0: [0.96180319786071777, 0.37529754638671875],
1: [0.20612385869026184, 0.17849941551685333],
2: [0.20612400770187378, 0.17510984838008881],
5065: [0.80861318111419678, 0.76381617784500122],...}
Я использую эту пару ключ-значение только для запоминания последовательности данных. При необходимости тип данных можно заменить списком/набором. Мне нужно найти пары ключ:значение (индекс и значение) элементов, которые не являются общими для словарей.
Код, который я использую, очень прост.
Код: Выделить всё
new = {}
found = []
for i in range(0, len(post)):
found= []
for j in range(0, len(pre)):
if post[i] not in pre.values():
if post[i] not in new:
new[i] = post[i]
found.append(j)
break
if found:
for f in found: pre.pop(f)
Проблема, с которой я столкнулся, заключается в том, что этот процесс слишком медленный. Иногда обработка занимает больше часа. Иногда данные могут быть намного больше. Мне нужно, чтобы это было быстрее.
Есть ли эффективный способ добиться того, чего я пытаюсь достичь? Мне бы хотелось, чтобы мы не зависели от внешних пакетов, кроме тех, которые входят в состав Python 2.5 (64 бит), кроме случаев крайней необходимости.
Спасибо всем.
Подробнее здесь: https://stackoverflow.com/questions/794 ... -in-python
Мобильная версия