{"id":367,"date":"2024-11-09T18:47:42","date_gmt":"2024-11-09T18:47:42","guid":{"rendered":"https:\/\/equipomedios.com\/blog\/?p=367"},"modified":"2024-10-18T18:49:55","modified_gmt":"2024-10-18T18:49:55","slug":"iteradores-python","status":"publish","type":"post","link":"https:\/\/equipomedios.com\/blog\/iteradores-python\/","title":{"rendered":"Iteradores | Python"},"content":{"rendered":"<h1>Iteradores<\/h1>\n<p>Para entender los la filosof\u00eda de los\u00a0<em>Iteradores<\/em>, busca la\u00a0<em>simplicidad<\/em>\u00a0de las operaciones, evitando la duplicaci\u00f3n del esfuerzo, el cual es un derroche y busca reemplazar varios de los enfoques propios con una caracter\u00edstica est\u00e1ndar, normalmente, deriva en hacer las cosas m\u00e1s legibles adem\u00e1s de m\u00e1s interoperable.<\/p>\n<blockquote>\n<div><em>Guido van Rossum<\/em>\u00a0\u2014\u00a0<cite>A\u00f1adiendo tipado est\u00e1tico opcional a Python<\/cite>\u00a0(Adding Optional Static Typing to Python).<\/div>\n<\/blockquote>\n<p>Un iterador es un objeto adherido al\u00a0iterator protocol, b\u00e1sicamente esto significa que tiene una funci\u00f3n\u00a0<span class=\"std std-ref\">next()<\/span>, es decir, cuando se le llama, devuelve la siguiente elemento en la secuencia, cuando no queda nada para ser devuelto, lanza la excepci\u00f3n\u00a0<span class=\"std std-ref\">StopIteration<\/span>\u00a0y se causa el detener la iteraci\u00f3n. Pero si se llama de forma expl\u00edcita puede ver que, una vez que el iterador est\u00e9\u00a0<em>agotado<\/em>, al llamarlo nuevamente ver\u00e1 que se lanza la excepci\u00f3n comentada anteriormente.<\/p>\n<p>A continuaci\u00f3n el uso de iteradores usando del m\u00e9todo especial\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">__iter__()<\/span><\/code>\u00a0incluido en el\u00a0<em>objeto integrado<\/em>\u00a0<span class=\"std std-ref\">file<\/span>:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">archivo<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">open<\/span><span class=\"p\">(<\/span><span class=\"s1\">'\/etc\/hostname'<\/span><span class=\"p\">)<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">archivo<\/span>\r\n<span class=\"go\">&lt;open file '\/etc\/hostname', mode 'r' at 0x7fa44ba379c0&gt;<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">archivo<\/span><span class=\"o\">.<\/span><span class=\"fm\">__iter__<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">&lt;open file '\/etc\/hostname', mode 'r' at 0x7fa44ba379c0&gt;<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">iter<\/span><span class=\"p\">(<\/span><span class=\"n\">archivo<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">&lt;open file '\/etc\/hostname', mode 'r' at 0x7fa44ba379c0&gt;<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">archivo<\/span> <span class=\"ow\">is<\/span> <span class=\"n\">archivo<\/span><span class=\"o\">.<\/span><span class=\"fm\">__iter__<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">True<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">linea<\/span> <span class=\"o\">=<\/span> <span class=\"n\">archivo<\/span><span class=\"o\">.<\/span><span class=\"fm\">__iter__<\/span><span class=\"p\">()<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">linea<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">'laptop\\n'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">linea<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"gt\">Traceback (most recent call last):<\/span>\r\n  File <span class=\"nb\">\"&lt;stdin&gt;\"<\/span>, line <span class=\"m\">1<\/span>, in <span class=\"n\">&lt;module&gt;<\/span>\r\n<span class=\"gr\">StopIteration<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>En el ejemplo, el m\u00e9todo especial\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">__iter__()<\/span><\/code>, hace lo mismo que la funci\u00f3n integrada\u00a0<span class=\"std std-ref\">iter(archivo)<\/span>.<\/p>\n<div id=\"iteradores-y-secuencias\" class=\"section\">\n<h2>Iteradores y secuencias<\/h2>\n<p>Los\u00a0<em>iteradores<\/em>\u00a0se usan con los tipos de secuencias est\u00e1ndar. A continuaci\u00f3n, se describen algunos ejemplos:<\/p>\n<p><strong>Iterar sobre la secuencia inmutable cadena de car\u00e1cter<\/strong><\/p>\n<p>A continuaci\u00f3n, un ejemplo del uso de los iteradores con la secuencia\u00a0<em>inmutable<\/em>\u00a0de tipo\u00a0<span class=\"std std-ref\">cadena de caracteres<\/span>\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">ASCII<\/span><\/code>:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">frase<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'Hola Mundo'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">letra<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">iter<\/span><span class=\"p\">(<\/span><span class=\"n\">frase<\/span><span class=\"p\">)<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">letra<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">'H'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">letra<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">'o'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">letra<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">'l'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">letra<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">'a'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">letra<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">' '<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">letra<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">'M'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">letra<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">'u'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">letra<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">'n'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">letra<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">'d'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">letra<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">'o'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">letra<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"gt\">Traceback (most recent call last):<\/span>\r\n  File <span class=\"nb\">\"&lt;stdin&gt;\"<\/span>, line <span class=\"m\">1<\/span>, in <span class=\"n\">&lt;module&gt;<\/span>\r\n<span class=\"gr\">StopIteration<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>En el ejemplo anterior, cuando se itera en la secuencia\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">frase<\/span><\/code>, al llegar al final mediante el iterador\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">letra<\/span><\/code>\u00a0se llama a la excepci\u00f3n\u00a0<span class=\"std std-ref\">StopIteration<\/span>\u00a0y se causa el detener la iteraci\u00f3n.<\/p>\n<p><strong>Iterar sobre la secuencia inmutable cadena Unicode<\/strong><\/p>\n<p>A continuaci\u00f3n, un ejemplo del uso de los iteradores con la secuencia\u00a0<em>inmutable<\/em>\u00a0de tipo\u00a0<span class=\"std std-ref\">cadena de caracteres<\/span>\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">Unicode<\/span><\/code>:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">frase<\/span> <span class=\"o\">=<\/span> <span class=\"sa\">u<\/span><span class=\"s1\">'Jekechit\u00fc'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">letra<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">iter<\/span><span class=\"p\">(<\/span><span class=\"n\">frase<\/span><span class=\"p\">)<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">letra<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">u'J'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">letra<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">u'e'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">letra<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">u'k'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">letra<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">u'e'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">letra<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">u'c'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">letra<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">u'h'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">letra<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">u'i'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">letra<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">u't'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">letra<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">u'\\xfc'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">letra<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"gt\">Traceback (most recent call last):<\/span>\r\n  File <span class=\"nb\">\"&lt;stdin&gt;\"<\/span>, line <span class=\"m\">1<\/span>, in <span class=\"n\">&lt;module&gt;<\/span>\r\n<span class=\"gr\">StopIteration<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>En el ejemplo anterior, cuando se itera en la secuencia\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">frase<\/span><\/code>, al llegar al final mediante el iterador\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">letra<\/span><\/code>\u00a0se llama a la excepci\u00f3n\u00a0<span class=\"std std-ref\">StopIteration<\/span>\u00a0y se causa el detener la iteraci\u00f3n.<\/p>\n<p><strong>Iterar sobre la secuencia inmutable tupla<\/strong><\/p>\n<p>A continuaci\u00f3n, un ejemplo del uso de los iteradores con la secuencia\u00a0<em>inmutable<\/em>\u00a0de tipo\u00a0<span class=\"std std-ref\">tupla<\/span>:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">valores<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"Python\"<\/span><span class=\"p\">,<\/span> <span class=\"kc\">True<\/span><span class=\"p\">,<\/span> <span class=\"s2\">\"Zope\"<\/span><span class=\"p\">,<\/span> <span class=\"mi\">5<\/span><span class=\"p\">)<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">valores<\/span>\r\n<span class=\"go\">('Python', True, \"Zope\", 5)<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">valores<\/span><span class=\"o\">.<\/span><span class=\"fm\">__iter__<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">&lt;tupleiterator object at 0x7fa44b9fa450&gt;<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">valor<\/span> <span class=\"o\">=<\/span> <span class=\"n\">valores<\/span><span class=\"o\">.<\/span><span class=\"fm\">__iter__<\/span><span class=\"p\">()<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">valor<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">'Python'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">valor<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">True<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">valor<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">'Zope'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">valor<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">5<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">valor<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"gt\">Traceback (most recent call last):<\/span>\r\n  File <span class=\"nb\">\"&lt;stdin&gt;\"<\/span>, line <span class=\"m\">1<\/span>, in <span class=\"n\">&lt;module&gt;<\/span>\r\n<span class=\"gr\">StopIteration<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>En el ejemplo anterior, cuando se itera en la secuencia\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">valores<\/span><\/code>, al llegar al final mediante el iterador\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">valor<\/span><\/code>\u00a0se llama a la excepci\u00f3n\u00a0<span class=\"std std-ref\">StopIteration<\/span>\u00a0y se causa el detener la iteraci\u00f3n.<\/p>\n<p><strong>Iterar sobre la funci\u00f3n inmutable xrange<\/strong><\/p>\n<p>A continuaci\u00f3n, un ejemplo del uso de los iteradores con la secuencia\u00a0<em>inmutable<\/em>\u00a0con la funci\u00f3n integrada\u00a0<span class=\"std std-ref\">xrange()<\/span>:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">lista<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">iter<\/span><span class=\"p\">(<\/span><span class=\"n\">xrange<\/span><span class=\"p\">(<\/span><span class=\"mi\">5<\/span><span class=\"p\">))<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">lista<\/span>\r\n<span class=\"go\">&lt;rangeiterator object at 0x7fa44b9fb7b0&gt;<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">lista<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">0<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">lista<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">1<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">lista<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">2<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">lista<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">3<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">lista<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">4<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">lista<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"gt\">Traceback (most recent call last):<\/span>\r\n  File <span class=\"nb\">\"&lt;stdin&gt;\"<\/span>, line <span class=\"m\">1<\/span>, in <span class=\"n\">&lt;module&gt;<\/span>\r\n<span class=\"gr\">StopIteration<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>En el ejemplo anterior, cuando se itera en la secuencia\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">lista<\/span><\/code>, al llegar al final se llama a la excepci\u00f3n\u00a0<span class=\"std std-ref\">StopIteration<\/span>\u00a0y se causa el detener la iteraci\u00f3n.<\/p>\n<p><strong>Iterar sobre la secuencia mutable lista<\/strong><\/p>\n<p>A continuaci\u00f3n, un ejemplo del uso de los iteradores con la secuencia\u00a0<em>mutable<\/em>\u00a0de tipo\u00a0<span class=\"std std-ref\">lista<\/span>:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">versiones_plone<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"mf\">2.1<\/span><span class=\"p\">,<\/span> <span class=\"mf\">2.5<\/span><span class=\"p\">,<\/span> <span class=\"mf\">3.6<\/span><span class=\"p\">,<\/span> <span class=\"mi\">4<\/span><span class=\"p\">,<\/span> <span class=\"mi\">5<\/span><span class=\"p\">,<\/span> <span class=\"mi\">6<\/span><span class=\"p\">]<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">iter<\/span><span class=\"p\">(<\/span><span class=\"n\">versiones_plone<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">&lt;listiterator object at 0x7fa44b9fa450&gt;<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">iter<\/span><span class=\"p\">(<\/span><span class=\"n\">versiones_plone<\/span><span class=\"p\">)<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span>\r\n<span class=\"go\">&lt;listiterator object at 0x7fa44b9fa550&gt;<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">2.1<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">2.5<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">3.6<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">4<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">5<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">6<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"gt\">Traceback (most recent call last):<\/span>\r\n  File <span class=\"nb\">\"&lt;stdin&gt;\"<\/span>, line <span class=\"m\">1<\/span>, in <span class=\"n\">&lt;module&gt;<\/span>\r\n<span class=\"gr\">StopIteration<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>En el ejemplo anterior, cuando se itera en la secuencia\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">versiones_plone<\/span><\/code>, al llegar al final mediante el iterador\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">version<\/span><\/code>\u00a0se llama a la excepci\u00f3n\u00a0<span class=\"std std-ref\">StopIteration<\/span>\u00a0y se causa el detener la iteraci\u00f3n.<\/p>\n<p>Usted puede devolver un objeto iterador en orden inverso sobre una secuencia\u00a0<em>mutable<\/em>\u00a0de tipo\u00a0<span class=\"std std-ref\">lista<\/span>\u00a0usando su funci\u00f3n integrada\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">__reversed__()<\/span><\/code>.<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">versiones_plone<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"mf\">2.1<\/span><span class=\"p\">,<\/span> <span class=\"mf\">2.5<\/span><span class=\"p\">,<\/span> <span class=\"mf\">3.6<\/span><span class=\"p\">,<\/span> <span class=\"mi\">4<\/span><span class=\"p\">,<\/span> <span class=\"mi\">5<\/span><span class=\"p\">,<\/span> <span class=\"mi\">6<\/span><span class=\"p\">]<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">versiones_plone<\/span><span class=\"o\">.<\/span><span class=\"fm\">__reversed__<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">&lt;listreverseiterator object at 0xb712ebec&gt;<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span> <span class=\"o\">=<\/span> <span class=\"n\">versiones_plone<\/span><span class=\"o\">.<\/span><span class=\"fm\">__reversed__<\/span><span class=\"p\">()<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">6<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">5<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">4<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">3.6<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">2.5<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">2.1<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"gt\">Traceback (most recent call last):<\/span>\r\n  File <span class=\"nb\">\"&lt;stdin&gt;\"<\/span>, line <span class=\"m\">1<\/span>, in <span class=\"n\">&lt;module&gt;<\/span>\r\n<span class=\"gr\">StopIteration<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>En el ejemplo anterior, cuando se itera en la secuencia\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">versiones_plone<\/span><\/code>, al llegar al final mediante el iterador\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">version<\/span><\/code>\u00a0se llama a la excepci\u00f3n\u00a0<span class=\"std std-ref\">StopIteration<\/span>\u00a0y se causa el detener la iteraci\u00f3n.<\/p>\n<p>Tambi\u00e9n puede acceder al uso del m\u00e9todo especial\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">__iter__()<\/span><\/code>\u00a0incluido en la secuencia\u00a0<em>mutable<\/em>\u00a0del tipo integrado\u00a0<span class=\"std std-ref\">lista<\/span>:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">versiones_plone<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"mf\">2.1<\/span><span class=\"p\">,<\/span> <span class=\"mf\">2.5<\/span><span class=\"p\">,<\/span> <span class=\"mf\">3.6<\/span><span class=\"p\">,<\/span> <span class=\"mi\">4<\/span><span class=\"p\">,<\/span> <span class=\"mi\">5<\/span><span class=\"p\">,<\/span> <span class=\"mi\">6<\/span><span class=\"p\">]<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">versiones_plone<\/span><span class=\"o\">.<\/span><span class=\"fm\">__iter__<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">&lt;listiterator object at 0x7fa44b9fa510&gt;<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p><strong>Iterar sobre la funci\u00f3n mutable range<\/strong><\/p>\n<p>A continuaci\u00f3n, un ejemplo del uso de los iteradores con la secuencia\u00a0<em>mutable<\/em>\u00a0de la funci\u00f3n integrada\u00a0<span class=\"std std-ref\">range()<\/span>:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">lista<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">iter<\/span><span class=\"p\">(<\/span><span class=\"nb\">range<\/span><span class=\"p\">(<\/span><span class=\"mi\">5<\/span><span class=\"p\">))<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">lista<\/span>\r\n<span class=\"go\">&lt;listiterator object at 0x7fa44b9fa490&gt;<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">lista<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">0<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">lista<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">1<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">lista<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">2<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">lista<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">3<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">lista<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">4<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">lista<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"gt\">Traceback (most recent call last):<\/span>\r\n  File <span class=\"nb\">\"&lt;stdin&gt;\"<\/span>, line <span class=\"m\">1<\/span>, in <span class=\"n\">&lt;module&gt;<\/span>\r\n<span class=\"gr\">StopIteration<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>En el ejemplo anterior, cuando se itera en la secuencia\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">lista<\/span><\/code>, al llegar al final se llama a la excepci\u00f3n\u00a0<span class=\"std std-ref\">StopIteration<\/span>\u00a0y se causa el detener la iteraci\u00f3n.<\/p>\n<\/div>\n<div id=\"iteradores-y-conjuntos\" class=\"section\">\n<h2>Iteradores y conjuntos<\/h2>\n<p>Los\u00a0<em>iteradores<\/em>\u00a0se usan con los tipos de conjuntos est\u00e1ndar. A continuaci\u00f3n, se describen algunos ejemplos:<\/p>\n<p><strong>Iterar sobre el conjunto mutable<\/strong><\/p>\n<p>A continuaci\u00f3n, un ejemplo del uso de los iteradores con el conjunto\u00a0<em>mutable<\/em>\u00a0de tipo\u00a0<span class=\"std std-ref\">conjuntos<\/span>:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">versiones_plone<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">set<\/span><span class=\"p\">([<\/span><span class=\"mf\">2.1<\/span><span class=\"p\">,<\/span> <span class=\"mf\">2.5<\/span><span class=\"p\">,<\/span> <span class=\"mf\">3.6<\/span><span class=\"p\">,<\/span> <span class=\"mi\">4<\/span><span class=\"p\">,<\/span> <span class=\"mi\">5<\/span><span class=\"p\">,<\/span> <span class=\"mi\">6<\/span><span class=\"p\">,<\/span> <span class=\"mi\">4<\/span><span class=\"p\">])<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">iter<\/span><span class=\"p\">(<\/span><span class=\"n\">versiones_plone<\/span><span class=\"p\">)<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span>\r\n<span class=\"go\">&lt;setiterator object at 0x7fac9c7c7a50&gt;<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">2.5<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">4<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">5<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">6<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">2.1<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">3.6<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"gt\">Traceback (most recent call last):<\/span>\r\n  File <span class=\"nb\">\"&lt;stdin&gt;\"<\/span>, line <span class=\"m\">1<\/span>, in <span class=\"n\">&lt;module&gt;<\/span>\r\n<span class=\"gr\">StopIteration<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>En el ejemplo anterior, cuando se itera en la secuencia\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">versiones_plone<\/span><\/code>, al llegar al final mediante el iterador\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">version<\/span><\/code>\u00a0se llama a la excepci\u00f3n\u00a0<span class=\"std std-ref\">StopIteration<\/span>\u00a0y se causa el detener la iteraci\u00f3n.<\/p>\n<p><strong>Iterar sobre el conjunto inmutable<\/strong><\/p>\n<p>A continuaci\u00f3n, un ejemplo del uso de los iteradores con el conjunto\u00a0<em>inmutable<\/em>\u00a0de tipo\u00a0<span class=\"std std-ref\">conjuntos<\/span>:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">versiones_plone<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">frozenset<\/span><span class=\"p\">([<\/span><span class=\"mi\">6<\/span><span class=\"p\">,<\/span> <span class=\"mf\">2.1<\/span><span class=\"p\">,<\/span> <span class=\"mf\">2.5<\/span><span class=\"p\">,<\/span> <span class=\"mf\">3.6<\/span><span class=\"p\">,<\/span> <span class=\"mi\">4<\/span><span class=\"p\">,<\/span> <span class=\"mi\">5<\/span><span class=\"p\">,<\/span> <span class=\"mi\">4<\/span><span class=\"p\">,<\/span> <span class=\"mf\">2.5<\/span><span class=\"p\">])<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">iter<\/span><span class=\"p\">(<\/span><span class=\"n\">versiones_plone<\/span><span class=\"p\">)<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span>\r\n<span class=\"go\">&lt;setiterator object at 0x7fac9c7c7cd0&gt;<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">2.5<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">4<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">5<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">6<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">2.1<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">3.6<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"gt\">Traceback (most recent call last):<\/span>\r\n  File <span class=\"nb\">\"&lt;stdin&gt;\"<\/span>, line <span class=\"m\">1<\/span>, in <span class=\"n\">&lt;module&gt;<\/span>\r\n<span class=\"gr\">StopIteration<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>En el ejemplo anterior, cuando se itera en la secuencia\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">versiones_plone<\/span><\/code>, al llegar al final mediante el iterador\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">version<\/span><\/code>\u00a0se llama a la excepci\u00f3n\u00a0<span class=\"std std-ref\">StopIteration<\/span>\u00a0y se causa el detener la iteraci\u00f3n.<\/p>\n<\/div>\n<div id=\"iteradores-y-mapeos\" class=\"section\">\n<h2>Iteradores y mapeos<\/h2>\n<p>Los\u00a0<em>iteradores<\/em>\u00a0se usan con los tipos de secuencias est\u00e1ndar. A continuaci\u00f3n, se describen algunos ejemplos:<\/p>\n<p><strong>Iterar sobre las claves del diccionario<\/strong><\/p>\n<p>A continuaci\u00f3n, un ejemplo del uso de los iteradores con la secuencia de\u00a0<em>mapeo<\/em>, tipo\u00a0<span class=\"std std-ref\">diccionario<\/span>, por defecto muestra la clave de la secuencia:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">versiones_plone<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">dict<\/span><span class=\"p\">(<\/span><span class=\"n\">python<\/span><span class=\"o\">=<\/span><span class=\"mf\">2.7<\/span><span class=\"p\">,<\/span> <span class=\"n\">zope<\/span><span class=\"o\">=<\/span><span class=\"mf\">2.13<\/span><span class=\"p\">,<\/span> <span class=\"n\">plone<\/span><span class=\"o\">=<\/span><span class=\"mf\">5.1<\/span><span class=\"p\">)<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">paquete<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">iter<\/span><span class=\"p\">(<\/span><span class=\"n\">versiones_plone<\/span><span class=\"p\">)<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">paquete<\/span>\r\n<span class=\"go\">&lt;dictionary-keyiterator object at 0x7fa44b9e99f0&gt;<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">paquete<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">'zope'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">paquete<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">'python'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">paquete<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">'plone'<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">paquete<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"gt\">Traceback (most recent call last):<\/span>\r\n  File <span class=\"nb\">\"&lt;stdin&gt;\"<\/span>, line <span class=\"m\">1<\/span>, in <span class=\"n\">&lt;module&gt;<\/span>\r\n<span class=\"gr\">StopIteration<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>En el ejemplo anterior, cuando se itera en la secuencia\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">versiones_plone<\/span><\/code>, al llegar al final mediante el iterador\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">paquete<\/span><\/code>\u00a0se llama a la excepci\u00f3n\u00a0<span class=\"std std-ref\">StopIteration<\/span>\u00a0y se causa el detener la iteraci\u00f3n.<\/p>\n<p><strong>Iterar sobre los valores del diccionario<\/strong><\/p>\n<p>A continuaci\u00f3n, un ejemplo del uso de los iteradores con la secuencia de\u00a0<em>mapeo<\/em>, tipo\u00a0<span class=\"std std-ref\">diccionario<\/span>\u00a0para mostrar el valor de una clave usando el m\u00e9todo integrado\u00a0<span class=\"std std-ref\">itervalues()<\/span>:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">versiones_plone<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">dict<\/span><span class=\"p\">(<\/span><span class=\"n\">python<\/span><span class=\"o\">=<\/span><span class=\"mf\">2.7<\/span><span class=\"p\">,<\/span> <span class=\"n\">zope<\/span><span class=\"o\">=<\/span><span class=\"mf\">2.13<\/span><span class=\"p\">,<\/span> <span class=\"n\">plone<\/span><span class=\"o\">=<\/span><span class=\"mf\">5.1<\/span><span class=\"p\">)<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">iter<\/span><span class=\"p\">(<\/span><span class=\"n\">versiones_plone<\/span><span class=\"o\">.<\/span><span class=\"n\">itervalues<\/span><span class=\"p\">())<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span>\r\n<span class=\"go\">&lt;dictionary-valueiterator object at 0x7fa44b9e9c00&gt;<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">2.13<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">2.7<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">5.1<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">version<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"gt\">Traceback (most recent call last):<\/span>\r\n  File <span class=\"nb\">\"&lt;stdin&gt;\"<\/span>, line <span class=\"m\">1<\/span>, in <span class=\"n\">&lt;module&gt;<\/span>\r\n<span class=\"gr\">StopIteration<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>En el ejemplo anterior, cuando se itera en la secuencia\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">versiones_plone<\/span><\/code>, al llegar al final mediante el iterador\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">version<\/span><\/code>\u00a0se llama a la excepci\u00f3n\u00a0<span class=\"std std-ref\">StopIteration<\/span>\u00a0y se causa el detener la iteraci\u00f3n.<\/p>\n<p><strong>Iterar sobre los elementos del diccionario<\/strong><\/p>\n<p>A continuaci\u00f3n, un ejemplo del uso de los iteradores con la secuencia de\u00a0<em>mapeo<\/em>, tipo\u00a0<span class=\"std std-ref\">diccionario<\/span>\u00a0para mostrar el par clave\/valor usando el m\u00e9todo integrado\u00a0<span class=\"std std-ref\">iteritems()<\/span>:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">versiones_plone<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">dict<\/span><span class=\"p\">(<\/span><span class=\"n\">python<\/span><span class=\"o\">=<\/span><span class=\"mf\">2.7<\/span><span class=\"p\">,<\/span> <span class=\"n\">zope<\/span><span class=\"o\">=<\/span><span class=\"mf\">2.13<\/span><span class=\"p\">,<\/span> <span class=\"n\">plone<\/span><span class=\"o\">=<\/span><span class=\"mf\">5.1<\/span><span class=\"p\">)<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">paquete<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">iter<\/span><span class=\"p\">(<\/span><span class=\"n\">versiones_plone<\/span><span class=\"o\">.<\/span><span class=\"n\">iteritems<\/span><span class=\"p\">())<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">paquete<\/span>\r\n<span class=\"go\">&lt;dictionary-itemiterator object at 0x7fa44b9e9b50&gt;<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">paquete<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">('zope', 2.13)<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">paquete<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">('python', 2.7)<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">paquete<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"go\">('plone', 5.1)<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">paquete<\/span><span class=\"o\">.<\/span><span class=\"n\">next<\/span><span class=\"p\">()<\/span>\r\n<span class=\"gt\">Traceback (most recent call last):<\/span>\r\n  File <span class=\"nb\">\"&lt;stdin&gt;\"<\/span>, line <span class=\"m\">1<\/span>, in <span class=\"n\">&lt;module&gt;<\/span>\r\n<span class=\"gr\">StopIteration<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>En el ejemplo anterior, cuando se itera en la secuencia\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">versiones_plone<\/span><\/code>, al llegar al final mediante el iterador\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">paquete<\/span><\/code>\u00a0se llama a la excepci\u00f3n\u00a0<span class=\"std std-ref\">StopIteration<\/span>\u00a0y se causa el detener la iteraci\u00f3n.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Iteradores Para entender los la filosof\u00eda de los\u00a0Iteradores, busca la\u00a0simplicidad\u00a0de las operaciones, evitando la duplicaci\u00f3n del esfuerzo, el cual es un derroche y busca reemplazar varios de los enfoques propios con una caracter\u00edstica est\u00e1ndar, normalmente, deriva en hacer las cosas m\u00e1s legibles adem\u00e1s de m\u00e1s interoperable. Guido van Rossum\u00a0\u2014\u00a0A\u00f1adiendo tipado est\u00e1tico opcional a Python\u00a0(Adding Optional [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":331,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[39,40],"tags":[],"class_list":["post-367","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programacion","category-python"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/equipomedios.com\/blog\/wp-content\/uploads\/2024\/08\/python-logo-master-v3-TM.png?fit=601%2C203&ssl=1","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/posts\/367","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/comments?post=367"}],"version-history":[{"count":1,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/posts\/367\/revisions"}],"predecessor-version":[{"id":368,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/posts\/367\/revisions\/368"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/media\/331"}],"wp:attachment":[{"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/media?parent=367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/categories?post=367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/tags?post=367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}