{ "cells": [ { "cell_type": "markdown", "id": "0ff51f78-7a53-437f-822a-e0ade6730946", "metadata": { "tags": [] }, "source": [ "Iteradores --- 5:38 min\n", "===\n", "\n", "* 05:38 min | Última modificación: Octubre 5, 2021" ] }, { "cell_type": "code", "execution_count": 1, "id": "d47b1829-5214-4be6-99cf-c1feb2af9403", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "a\n", "b\n", "c\n", "d\n", "e\n", "f\n", "g\n" ] } ], "source": [ "#\n", "# Estructura típica de un ciclo for\n", "# =============================================================================\n", "#\n", "letter_list = [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\"]\n", "for letter in letter_list:\n", " print(letter)" ] }, { "cell_type": "code", "execution_count": 2, "id": "ddea5a84-5959-496a-b024-09829927f090", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'a'" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "'b'" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "'c'" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#\n", "# Construcción de un iterador\n", "# =============================================================================\n", "#\n", "letter_iterator = iter(letter_list)\n", "\n", "#\n", "# Extracción de los elementos usando next()\n", "#\n", "display(\n", " next(letter_iterator),\n", " next(letter_iterator),\n", " next(letter_iterator),\n", ")" ] }, { "cell_type": "code", "execution_count": 3, "id": "53c1a977-e8fa-42fe-b07e-e139ecd8e63b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'d'" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "'e'" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "'f'" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "'g'" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#\n", "# Iteración con *\n", "# =============================================================================\n", "# El operador * extrae todos los elementos de una vez\n", "#\n", "display(*letter_iterator)" ] }, { "cell_type": "code", "execution_count": 4, "id": "d1b087fa-e40e-4918-a6d1-6caad41f3b63", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "a 1\n", "b 2\n", "c 3\n" ] } ], "source": [ "#\n", "# Iteración sobre un diccionario\n", "# =============================================================================\n", "#\n", "my_dict = {\n", " \"a\": 1,\n", " \"b\": 2,\n", " \"c\": 3,\n", "}\n", "\n", "for key, value in my_dict.items():\n", " print(key, value)" ] }, { "cell_type": "code", "execution_count": 5, "id": "5fb04429-c6d5-4deb-adc4-c141b0453f40", "metadata": {}, "outputs": [], "source": [ "#\n", "# Iteración sobre conexiones de artchivos\n", "# =============================================================================\n", "#" ] }, { "cell_type": "code", "execution_count": 6, "id": "b32db6ff-53b0-4fe1-815a-9a8b233fa0bd", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Overwriting /tmp/demo.txt\n" ] } ], "source": [ "%%writefile /tmp/demo.txt\n", "linea 1\n", "linea 2\n", "linea 3\n", "linea 4" ] }, { "cell_type": "code", "execution_count": 7, "id": "dcbe1e32-dac2-4e62-b38f-e5f16208be1c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'linea 1\\n'" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "'linea 2\\n'" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "file = open(\"/tmp/demo.txt\", \"r\")\n", "display(\n", " next(file),\n", " next(file),\n", ")" ] }, { "cell_type": "code", "execution_count": 8, "id": "75895b6d-237b-4864-be6a-788b74b2d2d5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "2" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#\n", "# Iteración sobre un rango\n", "# =============================================================================\n", "#\n", "range_iterator = iter(range(4))\n", "display(\n", " next(range_iterator),\n", " next(range_iterator),\n", " next(range_iterator),\n", ")" ] }, { "cell_type": "code", "execution_count": 9, "id": "9dfa8cc9-5a08-4e81-b6bf-2b3fa857bef3", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[0, 1, 2, 3]" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#\n", "# Conversión de un objeto rango a una lista\n", "# =============================================================================\n", "#\n", "list(range(4))" ] }, { "cell_type": "code", "execution_count": 10, "id": "3e7b997a-ee9b-4706-b4ab-a243a8309931", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "enumerate" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e'), (5, 'f'), (6, 'g')]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#\n", "# Construcción de una enumeración\n", "# # =============================================================================\n", "#\n", "letter_list = [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\"]\n", "enum = enumerate(letter_list)\n", "display(\n", " type(enum),\n", " list(enum),\n", ")" ] }, { "cell_type": "code", "execution_count": 11, "id": "5eba8464-bb1a-4514-9e46-ed84608b5590", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 a\n", "1 b\n", "2 c\n", "3 d\n", "4 e\n", "5 f\n", "6 g\n" ] } ], "source": [ "#\n", "# Uso de enumerate en un ciclo for\n", "#\n", "for i_letter, letter in enumerate(letter_list):\n", " print(i_letter, letter)" ] }, { "cell_type": "code", "execution_count": 12, "id": "93b39202-00cd-4e78-8bd7-417c5c820050", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "10 a\n", "11 b\n", "12 c\n", "13 d\n", "14 e\n", "15 f\n", "16 g\n" ] } ], "source": [ "#\n", "# Uso de enumerate en un ciclo for\n", "#\n", "for i_letter, letter in enumerate(letter_list, start=10):\n", " print(i_letter, letter)" ] }, { "cell_type": "code", "execution_count": 13, "id": "78ca247e-00ab-471d-9755-01d0a5490767", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "zip" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "[('A', 'a'), ('B', 'b'), ('C', 'c'), ('D', 'd'), ('E', 'e')]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#\n", "# Función zip()\n", "# =============================================================================\n", "#\n", "uppercase = [\"A\", \"B\", \"C\", \"D\", \"E\"]\n", "lowercase = [\"a\", \"b\", \"c\", \"d\", \"e\"]\n", "zipped = zip(uppercase, lowercase)\n", "display(\n", " type(zipped),\n", " list(zipped),\n", ")" ] }, { "cell_type": "code", "execution_count": 14, "id": "89eee2db-3577-4d04-b34c-ba8300001efa", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "('A', 'a')" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "('B', 'b')" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "('C', 'c')" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "('D', 'd')" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "('E', 'e')" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#\n", "# Uso de * con zip\n", "# =============================================================================\n", "#\n", "zipped = zip(uppercase, lowercase)\n", "display(*zipped)" ] }, { "cell_type": "code", "execution_count": 15, "id": "c467c167-2f6e-4d13-bed5-803a786c2b95", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "('A', 'a')" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "('B', 'b')" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "('C', 'c')" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "('D', 'd')" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "('E', 'e')" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#\n", "# Uso en un ciclo for\n", "#\n", "for items in zip(uppercase, lowercase):\n", " display(items)" ] }, { "cell_type": "code", "execution_count": 16, "id": "220573ee-0c11-413c-8397-b54faa14c1d3", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'A a'" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "'B b'" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "'C c'" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "'D d'" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "'E e'" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#\n", "# Forma más comun\n", "#\n", "for item1, item2 in zip(uppercase, lowercase):\n", " display(item1 + \" \" + item2)" ] }, { "cell_type": "code", "execution_count": 17, "id": "ba06789f-0756-42da-8f47-e19ac92baa4c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "('A', 'B', 'C', 'D', 'E')" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "('a', 'b', 'c', 'd', 'e')" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "zipped = zip(uppercase, lowercase)\n", "a, b = zip(*zipped)\n", "display(a, b)" ] } ], "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.6.9" } }, "nbformat": 4, "nbformat_minor": 5 }