Tengo un problema. Necesito crear una lista. Y en cada iteración necesito eliminar el tercer elemento e imprimir la lista sin el elemento eliminado.
La cosa es. Estoy tratando de hacer un algoritmo para eliminar el tercer elemento sin eliminar la función u otras funciones de lista incorporadas. En mi código cubrí las siguientes posibilidades. Si mi lista tiene menos de 3 elementos, imprimo un mensaje que dice que la lista es corta. Si mi lista tiene 3 elementos, asignaré al tercer elemento el valor del segundo elemento y así sucesivamente. Mi problema es cuando mi lista tiene más de 3 elementos.
v=[] # list of numbers the user inputs
two=[] #list with only 2 elements
vector=[] # list with third element deleted when len(v)>3
def create_array():
n=int(input('Digit total elements in dynamic array - '))
for i in range(0,n):
element=int(input('Digit element to array - '))
v.append(element)
return v
print(create_array())
def remove_third_element():
for j in range(0,len(v)):
if len(v)<3: # if number of elements in list < 3 there is no element to delete
print('There is no element do delete! ')
return 0
elif len(v)==3:
v[2]==v[1] and v[1]==v[0]
two=[v[0],v[1]]
return two
else:
v[0]==v[1] and v[1]==v[2]
print(remove_third_element())
4 respuestas
elif len(v) > 3:
ret = [];
for i in range(len(v)):
if(i != 2) ret.append(v[i]);
return ret
Debería hacer el truco
Por cierto, con este método puedes eliminar tu elif len (v) == 3
También tu código:
elif len(v)==3:
v[2]==v[1] and v[1]==v[0]
two=[v[0],v[1]]
return two
No funcionará porque '==' se usa como condición en python, por lo que devolverá un valor booleano y no asignará valor. ir por
v[2] = v[1]
v[1] = v[0]
En lugar de
Aquí hay una forma pitónica de hacer una nueva lista sin el tercer elemento de la lista original.
new_list = old_list[:2] + old_list[3:]
old_list[:2]
es la abreviatura de "hasta el 2º índice" (por lo que obtendremos los índices 0 y 1) de old_list
.
old_list[3:]
es la abreviatura de "desde el tercer índice hasta el final" (por lo tanto, el índice 3, 4, etc.).
Ambas listas de retorno; en python, si agrega listas, la concatenación realmente sucede.
Como ejemplo, si old_list = [1,2,3,4,5]
, entonces new_list[:2]
será [1,2]
y new_list[3:]
será [4,5]
. Entonces, combinar eso será [1,2,4,5]
.
def main():
big_list = [ x for x in range(20) ]
while len(big_list) > 3:
big_list = big_list[:2] + big_list[3:]
print(big_list)
¡Tenga en cuenta que esta declaración: v[2]==v[1] and v[1]==v[0]
no asignará valores! La operación ==
devuelve boolean.
Digamos que su v
se ve así: v = [1, 1, 3]
. Entonces v[2]==v[1] and v[1]==v[0]
te da el resultado: False and True
, y esto te da resultados False
. Puede verificarlo si imprime esto print(v[2]==v[1] and v[1]==v[0])
.
Si desea asignar valores, puede usar una declaración como esta: v[2], v[1] = v[1], v[0]
.
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.