Python Variables multivalor (Arrays)

Enviado por jalemany el Mar, 01/10/2019 - 20:08

Este manual está escrito en formato teatral entre PyBOT, un robot profesor de Python y Marcos, un estudiante interesado en aprender Python. 

Marcos: Hay un problema que me pide leer diez números y escribirlos al revés, ¿cómo lo hago?

PyBOT: Ok, aquí aprenderemos varias cosas.

Cómo puedo leer y guardar diez números, y después cómo puedo recorrerlos al revés.

Para ello necesitamos un tipo de variable que pueda contener más de un valor. Al igual que una palabra contiene distintas letras, un array puede contener distintos valores. Podemos ver cómo declarar un array en el siguiente código.

Para acceder a una posición concreta del array podemos usar la notación corchetes. así acceder a la primera posición es valores[0], y acceder a la última valores[n-1].

Marcos: ¿Qué pasa si no sé el valor de n? 

PyBOT: Puedes acceder a la última posición usando valores[-1] ya que los arrays son circulares. 

Marcos: Ok o sea que puedo leer 

valores=input().split( ' ')
for i in range (10):
  valores[i]=int(valores[i]))
for i in range (10):
  print (valores[i])
  

Pero ¿cómo lo escribo en orden inverso?

PyBOT: Muy fácil, podemos simplemente acceder a la posición valores[9-i] o cambiar el rango para que vaya de 9 hasta 0 de -1 en -1. El código sería así:

valores=input().split(' ')
for i in range (10):
  valores[i]=int(valores[i]))
for i in range (9,-1,-1):
  print (valores[i])
  

Si lo queremos guardar en otro array tendríamos que usar la opción append. append sirve para añadir elementos en un array ya creado.

valores=input().split(' ')
for i in range (10):
  enteros.append(int(valores[i]))
for i in range (9,-1,-1):
  print (enteros[i])
  

Marcos: ¿Y si en vez de añadir quiero eliminar?

PyBOT: existe la función remove, que elimina un elemento de una lista.  En caso de existir más de una copia elimina la primera aparición. Además puedes saber cuantos elementos tienes en la lista usando len(). Si lo que quieres es eliminar una posición concreta puedes invocar el comando pop.

Mira el siguiente ejemplo y dime que daría el programa con la entrada 1 2 3 2 2 1 

valores=input().split(' ')
print (len(valores))
valores.remove("2")
print (len(valores))

si usamos valores.pop(2) eliminaría el número en la tercera posición (recordemos que empezamos a contar por 0).

 

 

 

 

 

Printer Friendly, PDF & Email

Añadir nuevo comentario

Texto sin formato

  • No se permiten etiquetas HTML.
  • Saltos automáticos de líneas y de párrafos.
  • Las direcciones de correos electrónicos y páginas web se convierten en enlaces automáticamente.