Google+ Seguidores

jueves, 24 de abril de 2014

Listas en python

    9


Listas en python
Listas en python
Las listas son un tipo de colección ordenada y se asemejan mucho o son el equivalente en otros lenguajes de programación a lo que se conoce como arreglos o vectores.
Esta entrada la hago con el fin de ir completando mi tutorial python (lo aclaro porque en otras entradas ya he tocado el tema listas).
En python estas listas pueden contener enteros, booleanos, cadenas de texto, flotantes o inclusive listas. Los elementos de una lista van encerrados entre corchetes ([]) y separados por comas cada uno de ellos de la siguiente forma:

Ejemplo de nuestra primera lista en python:


lista = [1, “dos”, False, [45, “cien”]]

Como podemos ver, nuestra lista tiene los siguientes elementos: un entero (1), una cadena de texto (“dos”), un booleano (False) y otra lista con dos elementos (un entero 45 y una cadena de texto “cien”).

Como acceder a los elementos de una lista

Cada elemento de una lista cuenta con un índice. Este índice comienza con el numero 0 para el elemento numero 1. En nuestra lista (lista) el índice 0 corresponde al elemento (1), la cadena de texto que contiene la palabra “dos” seria el elemento número dos de la lista pero contiene el índice 1 y así sucesivamente con los demás elementos de la lista.

Ejemplo para acceder a un elemento de la lista

num = lista[1]

Lo que hicimos en el anterior ejemplo fue asignarle a la variable num el elemento con índice uno de la lista (lista), en este caso (“dos”), por lo tanto la variable num va a contener la cadena de texto “dos”.
Ahora, para que nos muestre el contenido de nuestra nueva variable, solo tendremos que pedirlo con un print:

print num

Acceder a un elemento de la lista en python
Acceder a un elemento de la lista en python
 Ahora, como hacemos para acceder a los elementos de una lista que están dentro de otra lista?

Ejemplo: quiero acceder al primer elemento de la lista que esta dentro de la lista (lista):

lista = [1, “dos”, False, [45, “cien”]]

El elemento 4 de la lista (lista) es otra lista. Como dije anteriormente, los indices se empiezan a contar desde el 0, por lo tanto el indice del elemento 4 es el 3. Y como el elemento 4 también es una lista voy a poder acceder a sus elementos por sus indices, en este caso al indice 0 porque queremos interactuar con el primer elemento.

num = lista[3][0] #Ahora num vale 45

Cambiar o modificar elementos de una lista:

Lo que haremos sera cambiar el elemento 1 de la lista (lista) original por otro cualquiera.

lista = [1, “dos”, False, [45, “cien”]] #Definimos la lista
lista[1] = 5 #Asociamos el numero 5 al elemento con indice 1 de la lista
num = lista[1] #Le asignamos a la variable num el elemento con indice uno de la lista
print num #Para ver el cambio del nuevo elemento

print lista #Para ver como quedaría la lista con el cambio

Particionar una lista

Python trae cosas muy interesantes en lo que tiene que ver con el manejo de listas.
Por ejemplo, si nosotros queremos ver solo una porción de la lista tendríamos que hacer lo siguiente:
[inicio:fin]

lista = [1, “dos”, False, [45, “cien”]]

#Por ejemplo, para ver los primeros tres elementos de la lista (lista)

ejemplo = lista[0:3]

print ejemplo

Aqui lo que hacemos es asignarle a ejemplo los primeros 3 elementos de la lista (lista), o sea, los elementos desde el indice 0 al 3, este ultimo no se incluye.

Si en lugar de ejemplo = lista[0:3] hacemos ejemplo = lista[0:]
Asigna desde el elemento 0 hasta el final de la lista porque no indicamos fin. Lo mismo seria si no indicamos un inicio: ejemplo = lista[:3], asignamos desde el comienzo.

Si nosotros queremos ver algunos elementos, ejemplo: uno si uno no hacemos lo siguiente:

[inicio:fin:salto]

lista = [1, “dos”, False, [45, “cien”]]

ejemplo = lista[0:3:2] #Con el 2 saltea de uno en uno

print ejemplo

Jugando con los elementos de una lista en python
Jugando con los elementos de una lista en python
También podemos modificar una fracción de una lista de la siguiente manera:

lista = [1, “dos”, False, [45, “cien”]]

lista[0:2] = [5, "mil"]

Si imprimimos la lista nos queda de la siguiente manera:

5, "mil", False, [45, "cien"]

Como los dos primeros elementos de la lista (lista) son 1 y "dos", se van a modificar por los elementos que hemos indicado nosotros: 5 y "mil".


Mencionar también que podemos trabajar con indices negativos, muy útiles a la hora de saber nuestro ultimo elemento de la lista, recorrer una lista de atrás hacia adelante, etc. Vamos a ver un ejemplo:

nombres = ["Diego", "Carlos", "Martin", "Lorena", "Natalia"]

print nombres[-1] #Nos devuelve el ultimo elemento de nuestra lista

Funciones y métodos para trabajar con listas

 

La función len() cuenta los elementos de una lista, ejemplo:

>>>estudiantes = ["Jose", "Raul", "Marcelo"]
>>>len(estudiantes)
3

Añadir elementos a una lista con el método insert(indice, objeto)

El método insert espera un indice y el valor a agregar, ejemplo:

>>>estudiantes = ["Jose", "Raul", "Marcelo"]
>>>estudiantes.insert(0, "Maria")
>>>print estudiantes
["Maria", "Jose", Raul", "Marcelo"]

Añadir elementos a una lista con el método append(objeto)

>>>estudiantes = ["Jose", "Raul", "Marcelo"]
>>>estudiantes.append("Mariela")
>>>print estudiantes
["Jose", "Raul", "Marcelo", "Mariela"]

Añadir varios elementos a una lista con el método extend(segmento)

>>>estudiantes = ["Jose", "Raul", "Marcelo"]
>>>estudiantes.extend(["Dario", "Natalia"])
>>>print estudiantes
["Jose", "Raul", "Marcelo", "Dario", "Natalia"]

Buscar elementos de una lista con el método index(objeto)

>>>estudiantes = ["Jose", "Raul", "Marcelo"]
>>>estudiantes.index("Raul")
1 #Retorna el índice del elemento "Raul"

Eliminar un elemento de la lista con el método remove(objeto)

>>>estudiantes = ["Jose", "Raul", "Marcelo"]
>>>estudiantes.remove("Raul")
>>>print estudiantes
["Jose", "Marcelo"]

Convertir cadenas en una lista con el método split()


Con el método split() podemos convertir una cadena de caracteres en una lista delimitada por los índices que indiquemos. Si no se indica nada se utilizan los espacios:

>>>"Hola mi nombre es Diego".split()
["Hola","mi","nombre","es","Diego"]

>>>"1-2-3-4-5-6".split("-")
["1","2","3","4","5","6"]

Buscar y saber si hay elemento duplicados con el método set()

>>>estudiantes = ["Martin", "Jose", "Raul", "Jose"]
>>>estudiantes_unicos = list(set(estudiantes))
>>>print estudiantes_unicos
["Raul", "Jose", "Martin"]

Veamos un ejemplo con una función:

def duplicado(lista):
    new_list = list(set(lista))
 
    if len(new_list) != len(lista):
        return True #Retorna True si hay duplicados
    else:
        return False
#Retorna False si no hay duplicados

Con el método pop(), podremos eliminar y mostrar el ultimo elemento de la lista, ejemplo:

>>>estudiantes = ["Jose", "Raul", "Marcelo"]
>>>estudiantes.pop()
"Marcelo"
>>>estudiantes
["Jose", "Raul"]

Saber cuantas veces se repite un elemento de una lista con el método count(objeto)

>>>estudiantes = ["Jose", "Raul", "Marcelo", "Raul"]
>>>estudiantes.count("Raul")
2

Invertir una lista con el método reverse()

>>>estudiantes = ["Jose", "Raul", "Marcelo", "Raul"]
>>>estudiantes.reverse()
>>>print estudiantes
["Raul", "Marcelo", "Raul", "Jose"]

Bueno, espero tengan una buena base para empezar a meter mano con las listas en python
Como siempre, cualquier duda o sugerencia dejen sus comentarios al final de la entrada. Saludos

9 comentarios:
Write comentarios
  1. hola, quiserea saber como solicitar al usuario ingresar datos ren una lista, osea "Cree un programa en Python 3.4 que le solicite al usuario ingresar una lista (mínimo con un elemento), una palabra y un número"

    ResponderEliminar
    Respuestas
    1. Hola, gracias por visitar el blog!!! Has pensado alguna solución? Porque no se resuelven ejercicios, tratamos de ayudar a pensar. Si tienes algo de código puedes publicarlo. Saludos!!!

      Eliminar
  2. Muchisimas gracias! muy bien explicado

    ResponderEliminar
  3. Hola Diego estoy siguiendo tus Tutoriales pero me porque en al facultad tengo Fundamentos de la programación, pero los problemas que dan a veces me traen dolor de cabeza y no puedo sacarlo. Si me ayudarías aunque sea con una parte del código te agradecería.

    Escribir una función denominada “cuantos_días” que reciba el número de mes como parámetro y retorne la cantidad de días que posee. Ejemplo: cuantos_días(1), debería retornar 31


    #!/usr/bin/env python
    # -*- coding: utf-8 -*-

    def cuantos_dias(mes):
    mes=[["Enero",31],["Febrero",29],["Marzo",31],["Abril",30],["Mayo",31],["Junio",30],["Julio",30],["Agosto",31],["Octubre",31],["Noviembre",30],["Diciembre",31]]
    print mes[0][1]


    cuantos_días(1)

    ResponderEliminar
    Respuestas
    1. Hola Ramiro, gracias por visitar el blog. La idea es hacerlo si o si con listas? Saludos

      Eliminar
    2. def cuantos_dias(x): # x sera el numero que pase como parametro, ejemplo 12 (diciembre)
      ----mes=[["Enero",31],["Febrero",29],["Marzo",31],["Abril",30],["Mayo",31],["Junio",30],["Julio",30],["Agosto",31],["Setiembre", 30],["Octubre",31],["Noviembre",30],["Diciembre",31]]
      ----if (x <= 0) or (x >12): # si el numero es menor a cero o mayor a 12 no es un mes
      --------print "No es un mes valido"
      ----else:
      --------print mes[x - 1][1] #El primer [] resta el numero ingresado - 1 para obtener el indice de la lista, el segundo [] obtiene el segundo elemento de cada sublista

      # Espero se entienda, Saludos, Diego
      cuantos_dias(12)

      Los guiones (-) son para que respetes la sangria.

      Eliminar
    3. Gracias Diego sos un Genio. Voy a seguir tus tutoriales.

      Eliminar
  4. Hola Diego
    Como puedo hacer para que la consola me entregue el valor que mas se repite dentro de una lista
    Por ejemplo tengo la lista [1,4,4,6,3,4,2] y quiero que me entregue como resultado 4

    ResponderEliminar
    Respuestas
    1. Hola Domingo, el método count cuenta cuantas veces se repite cierto elemento en una lista. En tu ejemplo: lista.count(4) daría como resultado 3. Se me ocurre que podrías hacer un for que recorra toda tu lista y vaya guardando en una variable el elemento que más se repite de la lista. Saludos ;)

      Eliminar

Tu comentario es importante y nos motiva a seguir escribiendo...

Entradas más recientes

© 2014 Mi diario Python. Designed by Bloggertheme9 | Distributed By Gooyaabi Templates
Powered by Blogger.