PORFIS DI :

PORFIS DI :

¿ESTAS A FAVOR DE LA LEGALIZACION DEL ABORTO EN GUATE?

LIBERTAD 15 DE SEPTIEMBRE DE 1821

LIBERTAD 15 DE SEPTIEMBRE DE 1821
DIA DE LA INDEPENDENCIA DE GUATEMALA

bye, bye, bye!!!

♫♪☼○○Q ONDA!!!♫♪♫♪

♥☼♫♂◘○○BIENVENIDOS AL BLOG ROCKER CLASS♫☼♫♂♪

♥♦♫TAN LINDO!!!

♥♦♫TAN LINDO!!!
♪♥♦APRECIENLO CHICAS♥♫♥

lunes, 21 de septiembre de 2009

PROGRAMACION: RESUMEN DE LISTAS

CAPITULO 5.2
LISTAS
El concepto de secuencia es muy potente y no se limita a las cadenas. Python nos permite definir secuencias de valores de cualquier tipo. Por ejemplo, podemos definir secuencias de números enteros o flotantes, o incluso de cadenas. Hablamos entonces de listas. En una lista podemos, por ejemplo, registrar las notas de los estudiantes de una clase, la evolución de la temperatura hora a hora, los coeficientes de un polinomio, la relación de nombres de personas asistentes a una reunión, etc.
Python sigue una notación especial para representar las listas. Los valores de una lista deben estar encerrados entre corchetes y separados por comas. He aquí una lista con los números del 1 al 3:

>>> [1, 2, 3]

[1, 2, 3]

Podemos asignar listas a variables:

>>> a = [1, 2, 3]

>>> a

[1, 2, 3]

Los elementos que forman una lista también pueden ser cadenas.


>>> nombres = [’Juan’, ’Antonia’, ’Luis’, ’María’]


Y también podemos usar expresiones para calcular el valor de cada elemento de una lista:

>>> a = [1, 1+1, 6/2] _

>>> a _

[1, 2, 3]

La asignación a una variable del contenido de otra variable que almacena una (referencia a
una) lista supone la copia de, únicamente, su referencia, así que ambas acaban apuntando a la misma zona de memoria:

>>> a = [1, 2, 3]

>>> b = a

La lista que contiene un sólo elemento presenta un aspecto curioso:

>>> a = [10]

>>> b = 10

Observa que no es lo mismo [10] que 10. [10] es la lista cuyo único elemento es el entero 10, y

10 es el entero 10. Gráficamente lo hemos destacado enmarcando la lista y disponiendo encima

de la celda su índice. Si pedimos a Python que nos muestre el contenido de las variables a y b,

veremos que la representación de la lista que contiene un escalar y la del escalar son diferentes:


>>> print a

[10]

>>> print b

10

La lista siempre se muestra encerrada entre corchetes.
Del mismo modo que hay una cadena vacía, existe también una lista vacía. La lista vacía se
denota así: [] y la representamos gríficamente como la cadena vacía:

>>> a = []

>>> print a

[]

COSAS QUE SIN DARNOS CUENTA YA SABEMOS SOBRE LAS LISTAS!!!

Una ventaja de Python es que proporciona operadores y funciones similares para trabajar con tipos de datos similares. Las cadenas y las listas tienen algo en com´un: ambas son secuencias de datos, así pues, muchos de los operadores y funciones que trabajan sobre cadenas también lo hacen sobre listas. Por ejemplo, la función len, aplicada sobre una lista, nos dice cuántos elementos la integran:

>>> a = [1, 2, 3]

>>> len(a)

3

>>> len([0, 1, 10, 5])

4

>>> len([10])

1

La longitud de la lista vacía es 0:

>>> len([]) 
0

El operador + concatena listas:

>>> [1, 2] + [3, 4]

[1, 2, 3, 4]

>>> a = [1, 2, 3]

>>> [10, 20] + a

[10, 20, 1, 2, 3]

y el operador * repite un número dado de veces una lista:

>>> [1, 2] * 3

[1, 2, 1, 2, 1, 2]

>>> a = [1, 2, 3]

>>> b = [10, 20] + a * 2

>>> b

[10, 20, 1, 2, 3, 1, 2, 3]

Has de tener en cuenta que tanto + como * generan nuevas listas, sin modificar las originales.

Observa este ejemplo:

>>> a = [1, 2, 3]

>>> b = a + [4] _

>>> c = b

¿Ves? La asignación a b deja intacta la lista a porque apunta al resultado de concatenar algo a a. La operación de concatenación no modifica la lista original: reserva memoria para una nueva lista con tantos elementos como resultan de sumar la longitud de las listas concatenadas y, a continuación, copia los elementos de la primera lista seguidos por los de la segunda lista en la nueva zona de memoria. Como asignamos a b el resultado de la concatenación, tenemos que b apunta a la lista recién creada. La tercera sentencia es una simple asignación a c, así quePython se limita a copiar la referencia.

El operador de indexación también es aplicable a las listas:

>>> a = [1, 2, 3]

>>> a[1]

2

>>> a[len(a)-1]

3

>>> a[-1]

3

A veces, el operador de indexación puede dar lugar a expresiones algo confusas a primera vista:


>>> [1, 2, 3][0]

1

En este ejemplo, el primer par de corchetes indica el principio y final de la lista (formada por el 1, el 2 y el 3) y el segundo par indica el ñindice del elemento al que deseamos acceder (el primero, es decir, el de índice 0).

EJERCICIOS:

214 ¿Qué aparecerá por pantalla al evaluar la expresión [1][0]? ¿Y al evaluar la expresión [][0]?


>>> [1][0]

1


>>> [][0]

Traceback (most recent call last):File "", line 1, in [][0] IndexError: list index out of range

De todos modos, no te preocupes por esa notación un tanto confusa: lo normal es que accedas a los elementos de listas que están almacenadas en variables, con lo que rara vez tendrás dudas.


>>> a = [1, 2, 3]

>>> a[0]

1

También el operador de corte es aplicable a las listas:


>>> a = [1, 2, 3]

>>> a[1:-1]

[2]

>>> a[1:]

[2, 3]

Si deseas asegurarte de que trabajas con una copia de una lista y no con la misma lista (a través
de una referencia) utiliza el operador de corte en la asignación.

EJERCICIOS

215 Hemos asignado a x la lista [1, 2, 3] y ahora queremos asignar a y una copia.

Podr´ıamos hacer y = x[:], pero parece que y = x + [] tambi´en funciona. ¿Es as´ı? ¿Por qu´e?


>>> x=[1,2,3]

>>> y=x[:]

>>> print y

[1, 2, 3]

Otra forma:

>>> x=[1,2,3]

>>> y=x+[]

>>> print y

[1, 2, 3]

El iterador for-in también recorre los elementos de una lista:


>>> for i in [1, 2, 3]:

... print i

...

1

2

3

De hecho, ya hemos utilizado bucles que iteran sobre listas. Cuando utilizamos un bucle for-in del modo convencional, es decir, haciendo uso de range, estamos recorriendo una lista:


>>> for i in range(1, 4):

... print i

...

1

2

3

Y es que range(1, 4) construye y devuelve la lista [1, 2, 3]:


>>> a = range(1, 4)

>>> print a

[1, 2, 3]

Una forma corriente de construir listas que contienen réplicas de un mismo valor se ayuda del operador *. Supongamos que necesitamos una lista de 10 elementos, todos los cuales valen 0. Podemos hacerlo así:


>>> [0] * 10

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

EJERCICIOS:

216 ¿Qué aparecería por pantalla al ejecutar este programa?

1 print ’Principio’

2 for i in []:

3 print ’paso’, i

4 print ’y fin’

print 'principio'

for i in []:

print 'paso', i

print 'y fin'

raw_input()

RESULTADO

>>>

principio

y fin

217 ¿Qué aparecería por pantalla al ejecutar este programa?

1 for i in [1] * 10:

2 print i

>>> for i in [1]*10:

print i

1

1

1

1

1

1

1

1

1

1

COMPARACION DE LISTAS

Los operadores de comparación también trabajan con listas. Parece claro cómo se comportarán operadores como el de igualdad (==) o el de desigualdad (!=): si las listas son de talla diferente, resolviendo que las listas son diferentes; y si miden lo mismo, comparando elemento a elemento de izquierda a derecha y resolviendo que las dos listas son iguales si todos sus elementos son iguales, y diferentes si hay algún elemento distinto.

Hagamos un par de pruebas con el intérprete de Python:


>>> [1, 2, 3] == [1, 2]

False

>>> [1, 2, 3] == [1, 2, 3]

True

>>> [1, 2, 3] == [1, 2, 4]

False

Los operadores <, >, <= y >= también funcionan con listas. ¿Cómo? Del mismo modo que con las cadenas, pues al fin y al cabo, tanto cadenas como listas son secuencias. Tomemos, por ejempo, el operador < al comparar las listas [1, 2, 3] y [1, 3, 2], es decir, al evaluar la expresión [1, 2, 3] < [1, 3, 2]. Se empieza por comparar los primeros elementos de ambas listas. Como no es cierto que 1 < 1, pasamos a comparar los respectivos segundos elementos.

Como 2 < 3, el resultado es True, sin necesidad de efectuar ninguna comparación adicional.

EJERCICIOS:

218 ¿Sabrías decir que resultados se mostrarán al ejecutar estas sentencias?

>>> [1, 2] < [1, 2]


1. >>> [1,2]<[1,2]

False


>>> [1, 2, 3] < [1, 2]


2. >>> [1,2,3]<[1,2]

False


>>> [1, 1] < [1, 2]


3. >>> [1,1]<[1,2]

True


>>> [1, 3] < [1, 2]


4. >>> [1,3]<[1,2]

False


True


>>> [10, 20, 30] > [1, 2, 3]


5. >>> [1,20,30]>[1,2,3]

True


>>> [10, 20, 3] > [1, 2, 3]


6. >>> [10,20,3]>[1,2,3]

True


>>> [10, 2, 3] > [1, 2, 3]


7. >>> [10,2,3]>[1,2,3]

True


>>> [1, 20, 30] > [1, 2, 3]


8. >>> [1,20,30]>[1,2,3]

True


>>> [0, 2, 3] <= [1, 2, 3]


9. >>> [0,2,3]<=[1,2,3]

True


>>> [1] < [2, 3]



10. >>> [1]<[2,3]

True


>>> [1] < [1, 2]


11. >>> [1]<[1,2]

True


>>> [1, 2] < [0]


12. >>> [1,2]<[0]

False







COMPUTACION


EL PROFE REVISO HOY EL BLOG, Y LA ENTRADA DE GUATE!!!



PERO DESPUES SE ENOJO PORQUE CASI NADIE HIZO BIEN LO DE LA ENTRADA DE LO MEJOR DE GUATE!!!!!!!

PROFE YA NO SE ENOJE!! JI JI

QUE BANCO CONTABILIZA EL DINERO QUE SE ENCUENTRA EN CIRCULACION EN GUATEMALA?

QUIEN FUE EL PRIMER PRESIDENTE DE GUATEMALA?

¿HAY QUE ANIMAR A LOS EMPLEADOS A HACER SUGERENCIAS QUE MEJORESN EL LUGAR DE TRABAJO O EL SERVICIO A LOS CLIENTES?

¿HAY QUE MOTIVAR A LOS EMPLEADOS A PRESENTAR CUALQUIER IDEA, POR PEQUEÑA QUE SEA?

¿ESTAS DE ACUERDO CON LAS CANDIDATAS QUE GANARON?

¿QUE OBRA TE GUSTO MAS?