Anteriormente presenté la relación entre el montón y la pila del espacio de almacenamiento de Java, y la introducción de Python hoy en día tiene el mismo principio. Un objeto solicitará un espacio en la memoria para guardar datos.Al acceder a un objeto, no accederá directamente a los datos del objeto en la memoria, sino que accederá por referencia.
Lo siguiente usará la lista de Python (lista) como ejemplo, es muy similar a la representación de matriz de Java, excepto que la lista puede tener colecciones de diferentes tipos.
lst1 = [1,2,3]
lst2 = lst1
print('原始的lst1:',lst1)
print('原始的lst2:',lst2,'\n')
lst2[0] = 666
print('更改后的lst1:',lst1)
print('更改后的lst2:',lst2)
Aquí hay otro ejemplo de cómo eliminar elementos de una lista típica. Supongamos que hay lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], necesitamos eliminar los 10 elementos en él, y finalmente mantener una lista vacía. Tal vez todos piensen en usar el método de bucle para darse cuenta por primera vez. Pruebe los resultados primero.
Se puede ver que el resultado final es [2,4,6,8,10], ¿cuál es el motivo?
Cuando i = 1, lst.remove(i), quita 1, (i es equivalente a lst[0], ejecuta del lst[0]) lst = [2,3,4,5,6,7,8,9 ,10]
Cuando i = 2, lst.remove(i) no puede entenderse como remove 2, (i es en realidad equivalente a lst[1], ejecute del lst[1]), lst = [2,4,5,6,7 , 8,9,10]
Cuando i = 3, lst.remove(i) no puede entenderse como remove 3, (i es en realidad equivalente a lst[2], ejecuta del lst[2]), lst = [2,4,6,7,8 , 9,10] , y así sucesivamente, el resultado final es [2,4,6,8,10]
Por lo tanto, si desea combinar perfectamente y borrar por completo todos los elementos de la lista, puede usar el corte o la copia para lograrlo.
método de corte
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for i in lst[:]:
lst.remove(i)
print(lst)
método de lista de copias
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for i in lst.copy():
lst.remove(i)
print(lst)
PD: como en el ejemplo anterior, puede eliminar directamente los números impares de la lista y también puede eliminar directamente los números pares de la lista.
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for i in lst:
lst.remove(i+1)
print(lst)
Por supuesto, también se puede realizar agregando un juicio de condición de resto.
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for i in lst:
if i % 2 != 0:
lst.remove(i)
print(lst)
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for i in lst:
if i % 2 == 0:
lst.remove(i)
print(lst)
Lo anterior presenta brevemente el montón y la pila de Python, así como ejemplos típicos de cambios en la lista, que a menudo se encuentran al escribir casos de prueba en pruebas de software. Siempre que comprenda los principios lógicos correspondientes, puede aplicarlos de manera flexible a los casos de prueba.