Я пытаюсь создать систему, которая принимает входные данные, разбивает входные данные на части (например, если бы входные данные были apple, они были бы разбиты на a, ap, app, appl и apple). Затем он будет сравнивать каждую из этих частей с каждым элементом списка, добавляя количество элементов, перекрывающихся с каждым элементом, в список, сортируя этот список по убыванию, а затем переупорядочивая исходный список элементов в соответствии с отсортированным. list, по сути, сортировка списка элементов путем перекрытия с заданным вводом.
У меня все работает до того момента, когда он сравнивает фрагменты со списком, но возвращает только значение для первого элемента в список независимо от ввода, даже если вход совпадает с другими элементами в списке, не знаю почему. Я только начал использовать python пару дней go, и мой единственный предыдущий опыт работы с кодировкой - с нуля, поэтому я не удивлюсь, если просто совершу глупую ошибку, которая мешает ей работать должным образом.
Repl.it: https://repl.it/@JACOBLIEBSON / релевантность-сортировка-тест
ItemsList=["apple","banana","microsoft","castle","control","music"]
print(ItemsList)
SimilarityList=["",]
FinalList=[","] SimilarityList.clear()
FinalList.clear()
InputVar=input("input:")
word=InputVar
def split(word): return list(word)
InputList=(split(word))
CombinationsList=["",]
CombinationsList.clear()
while len(InputList)>0:
print("".join(InputList))
CombinationsList.append("".join(InputList))
InputList.pop()
CombinationsList.reverse()
print(CombinationsList)
CountVar=1
SimilarityVar=0
RepeatX=len(ItemsList)
RepeatX2=len(CombinationsList)
while RepeatX>0:
CountVar2=1
SimilarityVar=0
while RepeatX2>0:
RepeatX2-=1
if CombinationsList[CountVar2-1] in ItemsList[CountVar-1]:
SimilarityVar+=1
CountVar2+=1
JoinList=[str(SimilarityVar),"(",str(len(SimilarityList)),")"]
print(JoinList)
SimilarityList.append("".join(JoinList))
CountVar+=1
RepeatX-=1
print(CountVar)
print(CountVar2)
print(SimilarityVar)
print(SimilarityList)