У меня есть список из 3 списков, в каждом из которых есть по 1 списку.
data_set = [
['AB12345',['T','T','C','C','A','C','A','G','C','T','T','T','T','C']],
['AB12346',['T','T','C','C','A','C','C','G','C','T','C','T','T','C']],
['AB12347',['T','G','C','C','A','C','G','G','C','T','T','C','T','C']]
]
У меня есть метод сравнения, который даст мне сходство списка, который содержит символы, а не идентификатор.
def compare(_from, _to):
similarity = 0
length = len(_from)
if len(_from) != len(_to):
raise Exception("Cannot be compared due to different length.")
for i in range(length):
if _from[i] == _to[i]:
similarity += 1
return similarity / length * 100
compare(data_set[0][1], data_set[1][1])
Используя метод сравнения, я использовал цикл for для сравнения списка «a» с другими списками, как в случае сравнения «a» с «a», сравнения «a» с «b» и сравнения «a» с «с».
for i in range(len(data_set)):
data_set[i].append(compare(data_set[0][1], data_set[i][1]))
print(round(data_set[i][2], 2), end=", ")
Но после завершения сравнения 1-го списка с другими списками и с самим собой, как мне перейти к 2-му списку и 3-му списку и продолжить сравнение с другими списками, чтобы получить их сходство? Например, («b» сравнивают с «a», «b» сравнивают с «b» и «b» сравнивают с «c») и («c» сравнивают с «a», «c» сравнивают с «b» и "c" сравнить с "c").