В настоящее время у меня есть требование сделать сравнение строк, содержащих MAC-адреса (например, «11: 22: 33: AA: BB: CC» с использованием Python 2.7. В настоящее время у меня есть предварительно сконфигурированный набор, содержащий MAC-адрес иМой сценарий выполняет итерацию набора, сравнивая каждый новый MAC-адрес с теми, которые указаны в списке. Это прекрасно работает, но по мере роста набора сценарий значительно замедляется. Всего около 100 вы можете заметить огромную разницу.
Есть ли у кого-нибудь какие-либо советы по ускорению этого процесса? Является ли хранение их в наборе лучшим способом для сравнения или лучше хранить их, например, в CSV / DB?
Пример кода ...
def Detect(p):
stamgmtstypes = (0,2,4)
if p.haslayer(Dot11):
if p.type == 0 and p.subtype in stamgmtstypes:
if p.addr2 not in observedclients:
# This is the set with location_mutex:
detection = p.addr2 + "\t" + str(datetime.now())
print type(p.addr2)
print detection, last_location
observedclients.append(p.addr2)