Skip to content

Instantly share code, notes, and snippets.

@hcosta
Created January 27, 2022 02:19
Show Gist options
  • Save hcosta/6ff3963c47dca457230d542a612a1984 to your computer and use it in GitHub Desktop.
Save hcosta/6ff3963c47dca457230d542a612a1984 to your computer and use it in GitHub Desktop.
enumerate.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<enumerate at 0x1baadf7a140>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"numeros = [5,1,-4,8,9,12,0,3,-1,8]\n",
"\n",
"enumerate(numeros)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[(0, 5),\n",
" (1, 1),\n",
" (2, -4),\n",
" (3, 8),\n",
" (4, 9),\n",
" (5, 12),\n",
" (6, 0),\n",
" (7, 3),\n",
" (8, -1),\n",
" (9, 8)]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Como puedes ver es un tipo de dato especial llamado enumerate\n",
"# ¿Pero y si lo transformamos a lista?\n",
"\n",
"list(enumerate(numeros))"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"# Fíjate como tenemos en este punto una lista con tuplas (a, b)\n",
"# El primer valor \"a\" de cada tupla hace referencia a su posición en la lista\n",
"# El segundo valor \"b\" de cada tupla hace referencia a su valor en la lista"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Pepe 24\n",
"Juan 31\n",
"María 25\n"
]
}
],
"source": [
"# Ahora falta entender cómo el for toma estos valores de la lista con tuplas\n",
"# Y lo hace ni más ni menos que por orden en función de las variables definidas\n",
"# Imagina esta lista de tuplas\n",
"\n",
"personas = [(\"Pepe\", 24), (\"Juan\", 31), (\"María\", 25)]\n",
"\n",
"# El primer valor de las tuplas hace referencia a un nombre\n",
"# El segundo valor de las tuplas hace referencia a una edad\n",
"for nombre, edad in personas:\n",
" print(nombre, edad)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"# Como ves podemos recorrer dinámicamente los valores de las tuplas\n",
"# almacenándolos a su vez en las variables del for nombre,edad "
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0 5\n",
"1 1\n",
"2 -4\n",
"3 8\n",
"4 9\n",
"5 12\n",
"6 0\n",
"7 3\n",
"8 -1\n",
"9 8\n"
]
}
],
"source": [
"# Por tanto \"enumerate\" transforma la lista a una lista de posiciones y valores\n",
"# permitiéndonos almacenarlas en dos variables para hacer lo que necesitemos\n",
"\n",
"numeros = [5,1,-4,8,9,12,0,3,-1,8]\n",
"\n",
"for VALOR_1, VALOR_2 in enumerate(numeros):\n",
" print(VALOR_1, VALOR_2)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Pero para entendernos mejor nombramos las variables acorde a lo que contienen\n",
"for indice, numero in enumerate(numeros):\n",
" print(indice, numero)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.1"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment