Skip to content

Commit be90a50

Browse files
committed
Add examples and solutions for list operations in Python with exercises to practice slicing and indexing techniques
1 parent 8cf4575 commit be90a50

2 files changed

Lines changed: 160 additions & 0 deletions

File tree

02_flow_control/03_list.py

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
###
2+
# 03 - Listas
3+
# Secuencias mutables de elementos.
4+
# Pueden contener elementos de diferentes tipos.
5+
###
6+
7+
import os
8+
os.system("clear")
9+
10+
# Creación de listas
11+
print("\nCrear listas")
12+
lista1 = [1, 2, 3, 4, 5] # lista de enteros
13+
lista2 = ["manzanas", "peras", "plátanos"] # lista de cadenas
14+
lista3 = [1, "hola", 3.14, True] # lista de tipos mixtos
15+
16+
lista_vacia = []
17+
lista_de_listas = [[1, 2], ['calcetin', 4]]
18+
matrix = [[1, 2], [2, 3], [4, 5]]
19+
20+
print(lista1)
21+
print(lista2)
22+
print(lista3)
23+
print(lista_vacia)
24+
print(lista_de_listas)
25+
print(matrix)
26+
27+
# Acceso a elementos por índice
28+
print("\nAcceso a elementos por índice")
29+
print(lista2[0]) # manzanas
30+
print(lista2[1]) # peras
31+
print(lista2[-1]) # plátanos
32+
print(lista2[-2]) # peras
33+
34+
print(lista_de_listas[1][0])
35+
36+
# Slicing (rebanado) de listas
37+
lista1 = [1, 2, 3, 4, 5]
38+
print(lista1[1:4]) # [2, 3, 4]
39+
print(lista1[:3]) # [1, 2, 3]
40+
print(lista1[3:]) # [4, 5]
41+
print(lista1[:]) # [1, 2, 3, 4, 5]
42+
43+
# HAY MÁS MAGIA
44+
lista1 = [1, 2, 3, 4, 5, 6, 7, 8]
45+
print(lista1[::2]) # para devolver índices pares
46+
print(lista1[::-1]) # para devolver índices inversos
47+
48+
# Modificar una lista
49+
lista1[0] = 20
50+
print(lista1)
51+
52+
# Añadir elementos a una lista
53+
lista1 = [1, 2, 3]
54+
55+
# forma larga y menos eficiente
56+
lista1 = lista1 + [4, 5, 6]
57+
print(lista1)
58+
59+
# forma corta y más eficiente
60+
lista1 += [7, 8, 9]
61+
print(lista1)
62+
63+
# Recuperar longitud de una lista
64+
print("Longitud de la lista", len(lista1))
65+
66+
###
67+
# EJERCICOS
68+
###
69+
70+
# Ejercicio 1: El mensaje secreto
71+
# Dada la siguiente lista:
72+
# mensaje = ["C", "o", "d", "i", "g", "o", " ", "s", "e", "c", "r", "e", "t", "o"]
73+
# Utilizando slicing y concatenación, crea una nueva lista que contenga solo el mensaje "secreto".
74+
75+
# Ejercicio 2: Intercambio de posiciones
76+
# Dada la siguiente lista:
77+
# numeros = [10, 20, 30, 40, 50]
78+
# Intercambia la primera y la última posición utilizando solo asignación por índice.
79+
80+
# Ejercicio 3: El sándwich de listas
81+
# Dadas las siguientes listas:
82+
# pan = ["pan arriba"]
83+
# ingredientes = ["jamón", "queso", "tomate"]
84+
# pan_abajo = ["pan abajo"]
85+
# Crea una lista llamada sandwich que contenga el pan de arriba, los ingredientes y el pan de abajo, en ese orden.
86+
87+
# Ejercicio 4: Duplicando la lista
88+
# Dada una lista:
89+
# lista = [1, 2, 3]
90+
# Crea una nueva lista que contenga los elementos de la lista original duplicados.
91+
# Ejemplo: [1, 2, 3] -> [1, 2, 3, 1, 2, 3]
92+
93+
# Ejercicio 5: Extrayendo el centro
94+
# Dada una lista con un número impar de elementos, extrae el elemento que se encuentra en el centro de la lista utilizando slicing.
95+
# Ejemplo: lista = [10, 20, 30, 40, 50] -> El centro es 30
96+
97+
# Ejercicio 6: Reversa parcial
98+
# Dada una lista, invierte solo la primera mitad de la lista (utilizando slicing y concatenación).
99+
# Ejemplo: lista = [1, 2, 3, 4, 5, 6] -> Resultado: [3, 2, 1, 4, 5, 6]
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
###
2+
# SOLUCIONES
3+
###
4+
5+
# Ejercicio 1: El mensaje secreto
6+
# Dada la siguiente lista:
7+
# mensaje = ["C", "o", "d", "i", "g", "o", " ", "s", "e", "c", "r", "e", "t", "o"]
8+
# Utilizando slicing y concatenación, crea una nueva lista que contenga solo el mensaje "secreto".
9+
print("\nEjercicio 1:")
10+
mensaje = ["C", "o", "d", "i", "g", "o", " ", "s", "e", "c", "r", "e", "t", "o"]
11+
secreto = mensaje[7:]
12+
print(secreto)
13+
14+
# Ejercicio 2: Intercambio de posiciones
15+
# Dada la siguiente lista:
16+
# numeros = [10, 20, 30, 40, 50]
17+
# Intercambia la primera y la última posición utilizando solo asignación por índice.
18+
print("\nEjercicio 2:")
19+
numeros = [10, 20, 30, 40, 50]
20+
numeros[0], numeros[-1] = numeros[-1], numeros[0] # Intercambio en una sola línea.
21+
print(numeros)
22+
23+
# Ejercicio 3: El sándwich de listas
24+
# Dadas las siguientes listas:
25+
# pan = ["pan arriba"]
26+
# ingredientes = ["jamón", "queso", "tomate"]
27+
# pan_abajo = ["pan abajo"]
28+
# Crea una lista llamada sandwich que contenga el pan de arriba, los ingredientes y el pan de abajo, en ese orden.
29+
print("\nEjercicio 3:")
30+
pan = ["pan arriba"]
31+
ingredientes = ["jamón", "queso", "tomate"]
32+
pan_abajo = ["pan abajo"]
33+
sandwich = pan + ingredientes + pan_abajo
34+
print(sandwich)
35+
36+
# Ejercicio 4: Duplicando la lista
37+
# Dada una lista:
38+
# lista = [1, 2, 3]
39+
# Crea una nueva lista que contenga los elementos de la lista original duplicados.
40+
# Ejemplo: [1, 2, 3] -> [1, 2, 3, 1, 2, 3]
41+
print("\nEjercicio 4:")
42+
lista = [1, 2, 3]
43+
lista_duplicada = lista + lista
44+
print(lista_duplicada)
45+
46+
# Ejercicio 5: Extrayendo el centro
47+
# Dada una lista con un número impar de elementos, extrae el elemento que se encuentra en el centro de la lista utilizando slicing.
48+
# Ejemplo: lista = [10, 20, 30, 40, 50] -> El centro es 30
49+
print("\nEjercicio 5:")
50+
lista = [10, 20, 30, 40, 50]
51+
centro = len(lista) // 2
52+
print(lista[centro])
53+
54+
# Ejercicio 6: Reversa parcial
55+
# Dada una lista, invierte solo la primera mitad de la lista (utilizando slicing y concatenación).
56+
# Ejemplo: lista = [1, 2, 3, 4, 5, 6] -> Resultado: [3, 2, 1, 4, 5, 6]
57+
print("\nEjercicio 6:")
58+
lista = [1, 2, 3, 4, 5, 6]
59+
mitad = len(lista) // 2
60+
lista_invertida = lista[:mitad][::-1] + lista[mitad:]
61+
print(lista_invertida)

0 commit comments

Comments
 (0)