функция compare
вычисляет количество различий (и карту различий, которые вы создали с помощью difference()
).Я переписал функцию сравнения, чтобы взять базовую строку для сравнения src
, чтобы вы не застряли при сравнении с "ABC"
все время.
def compare(src, test):
if len(src) != len(test):
return # must be the same length
diffmap = [0]*len(src)
count = 0
for i, c in enumerate(src):
if not c == test[i]:
count = count+1
diffmap[i] = 1
return test, count, diffmap
compare_to_many
Функция просто просматривает список строк для сравнения, srcs
, и создает список сравнений между этими базовыми строками и тестовой строкой test
.
def compare_to_many(srcs, test):
return map(lambda x: compare(x, test), srcs)
РЕДАКТИРОВАТЬ:
После уточнения в комментариях @ X-Pender необходимо жестко закодировать список источников.Это может быть отражено следующей единственной функцией:
def compare(test):
def compare_one(src, test):
diffmap = [0]*len(src)
count = 0
for i, c in enumerate(src):
if not c == test[i]:
count = count+1
diffmap[i] = 1
return test, count, diffmap
sources = ["ABC", "CDB", "EUA"] # this is your hardcoded list
return map(lambda x: compare_one(x, test), sources)