Как удалить переменную из списка al oop как уже пройденный - PullRequest
0 голосов
/ 26 апреля 2020

Моя цель здесь - создать все oop, где я получаю список, упорядоченный по порядку, начиная с Inicial, затем ближайший к Inicial элемент, затем ближайший к предыдущему и т. Д. Функция casa_mais_proxima дает мне ближайший элемент в списке к данному элементу. Я продолжаю получать list.remove (x): x отсутствует в списке в grupo.remove (resultado [casa]) и не знаю, как это изменить, чтобы я мог удалить элементы в списке, который есть у l oop уже прошел.

Inicial = (3,2)

Casas = [(0,1),(1,0),(1,2),(2,3)]

def percurso(Inicial,Casas):

    grupo = [Inicial]
    grupo.extend(Casas)
    resultado = [Inicial]
    casas = Casas
    for casa in range(len(Casas)):

        grupo.remove(resultado[casa])
        proxima = casa_mais_proxima(resultado[casa],grupo)
        resultado.append(proxima)

    return(resultado)

print(percurso(Inicial,Casas)) 

Я думаю, что может быть проблема с другой функцией, но я не могу определить ее

Casas = [(0,1),(1,0),(1,2),(2,3)]

def casa_mais_proxima(P,Casas):

    menor_distancia = 0
    resultado = []
    for elemento in Casas:
        if menor_distancia == 0:
            menor_distancia = distancia_casas(P,elemento)
        if menor_distancia == distancia_casas(P,elemento):
            resultado.append(elemento)
        if menor_distancia > distancia_casas(P,elemento):
                resultado = [elemento]
        else:
            continue
    if len(resultado) == 1:
        return resultado
    else:
        resultado_a = []
        for elemento in resultado:
            if len(resultado_a) == 0:
                resultado_a.append(elemento)
            if elemento[0] < resultado_a[0][0]:
                resultado_a = [elemento]
            if elemento[0] == resultado_a[0][0]:
                resultado_a.append(elemento)
            else:
                continue
        if len(resultado_a) == 1:
            return resultado_a
        else:
            resultado_b = []
            for elemento in resultado_a:
                if len(resultado_b) == 0:
                    resultado_b.append(elemento)
                if elemento[1] < resultado_b[1][1]:
                    resultado_b = list(elemento)
                if elemento[1] == resultado_b[1][1]:
                    resultado_b.append(elemento)
                else:
                    continue
            return resultado_b

print (casa_mais_proxima((1,1),[(0,2),(1,3),(2,1)]))
...