Python juzga si hay un elemento en la lista, si es así, lo elimina y genera la longitud de la lista eliminada y los elementos de la lista.

Ir directamente al código:

# 输入一个列表lt,判断val是否在lt中,如果在,将其删除,最后输出删除后的lt和lt的长度

def remove_element(lt, val):
    k = 0
    for i in range(len(lt)):
        if lt[i] != val:
            lt[k] = lt[i]
            k += 1
    return k


if __name__ == '__main__':
    lt = list(map(int, input().split(' ')))
    val = int(input())
    k = remove_element(lt, val)
    print(k)
    print(' '.join(map(str, lt[:k])))  # lt[:k],从0开始截取,截取k位

Este algoritmo es ingenioso: recorre la lista, compara cada elemento de la lista con el elemento coincidente y, si no son iguales, asigna el valor de la lista con el subíndice i a la lista con el subíndice k, porque inicialmente k=i= 0 , lo que significa sacar el elemento actual y asignarlo al elemento actual. Supongamos que hay una lista [1,2,3] y el valor del elemento coincidente es 2, entonces la posición de 1 después del primer ciclo no cambia , cuando i=1, k=1 , es decir, cuando el elemento de la lista es 2, lt[i]!=val es falso, ingrese al siguiente bucle, en este momento k=1, i=2, lt[2] !=val (Nota: lt[2]= 2) Si se cumplen las condiciones, ejecute lt[k]=lt[i], 3 cubrirá la posición de 2 y la lista se convertirá en [1,3,3] , una vez que se completa el ciclo, devuelve el valor k y luego usa la cadena para interceptar lt [:k], la intercepción comienza desde la posición 0 e intercepta la cadena con la longitud del intervalo cerrado de longitud k, por lo que es 1,3

Los resultados son los siguientes:

 

Supongo que te gusta

Origin blog.csdn.net/baidu_39105563/article/details/122203853
Recomendado
Clasificación