{"id":72149,"date":"2023-12-01T09:52:59","date_gmt":"2023-12-01T08:52:59","guid":{"rendered":"https:\/\/kinsta.com\/es\/?p=72149&#038;preview=true&#038;preview_id=72149"},"modified":"2023-12-18T17:44:39","modified_gmt":"2023-12-18T16:44:39","slug":"iterables-de-python","status":"publish","type":"post","link":"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/","title":{"rendered":"Iterar Como un Profesional: Gu\u00eda de Iterables de Python"},"content":{"rendered":"<p>En la programaci\u00f3n en Python, comprender y utilizar los iterables con eficacia es fundamental para una programaci\u00f3n competente. Los iterables son objetos sobre los que puedes iterar o hacer un bucle. Permiten recorrer secuencialmente los elementos que contienen, lo que los convierte en una herramienta fundamental para acceder y manipular elementos de objetos o estructuras de datos.<\/p>\n<p>Este art\u00edculo explora c\u00f3mo utilizar correctamente los iterables de <a href=\"https:\/\/kinsta.com\/es\/blog\/tutoriales-python\/\">Python<\/a>, centr\u00e1ndose en los tipos de datos iterables incorporados al lenguaje: listas, tuplas, diccionarios, cadenas y conjuntos. Tambi\u00e9n explica c\u00f3mo implementar tipos iterables personalizados y realizar operaciones avanzadas.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>C\u00f3mo Recorrer Iterables en Python<\/h2>\n<p>En Python, puedes iterar a trav\u00e9s de diversos tipos de iterables utilizando un bucle <code>for<\/code>. Esto te permite recorrer secuencias y realizar operaciones sobre elementos individuales dentro de listas, conjuntos y diccionarios.<\/p>\n<p>La palabra clave <code>for<\/code> en Python se desv\u00eda de su utilidad en otros lenguajes <a href=\"https:\/\/kinsta.com\/es\/blog\/programacion-orientada-objetos-python\/\">orientados a objetos<\/a> como <a href=\"https:\/\/kinsta.com\/es\/blog\/kotlin-vs-java\/\">Java<\/a>. Los bucles de Python <code>for<\/code> funcionan m\u00e1s como m\u00e9todos <a href=\"https:\/\/kinsta.com\/es\/blog\/tutoriales-python\/#24-python-for-you-and-me\">iteradores<\/a>. Aqu\u00ed tienes ejemplos para demostrar los bucles en iterables:<\/p>\n<h3>1. Bucle en una Lista<\/h3>\n<p>Las listas son colecciones ordenadas de elementos, lo que permite una iteraci\u00f3n sencilla mediante un bucle <code>for<\/code>.<\/p>\n<pre><code class=\"language-python\">fruits_list = [\"Apple\", \"Mango\", \"Peach\", \"Orange\", \"Banana\"]\n\nfor fruit in fruits_list:\n    print(fruit)<\/code><\/pre>\n<p>En el c\u00f3digo anterior, <code>fruit<\/code> act\u00faa como un iterador que el bucle utiliza para recorrer cada elemento de la lista mientras los imprime simult\u00e1neamente. El bucle termina tras evaluar el \u00faltimo elemento de la lista. El c\u00f3digo anterior deber\u00eda dar la siguiente salida:<\/p>\n<pre><code class=\"language-bash\">Apple\nMango\nPeach\nOrange\nBanana<\/code><\/pre>\n<h3>2. Iterando a Trav\u00e9s de una Tupla<\/h3>\n<p>Las tuplas son similares a las listas, pero inmutables. Puedes iterar a trav\u00e9s de ellas igual que con las listas.<\/p>\n<pre><code class=\"language-python\">fruits_tuple = (\"Apple\", \"Mango\", \"Peach\", \"Orange\", \"Banana\")\n\nfor fruit in fruits_tuple:\n\tprint(fruit)<\/code><\/pre>\n<p>En este ejemplo, el bucle <code>for<\/code> itera a trav\u00e9s de la tupla y, en cada iteraci\u00f3n, la variable <code>fruit<\/code> toma el valor del elemento actual de la tupla. El c\u00f3digo deber\u00eda dar el siguiente resultado:<\/p>\n<pre><code class=\"language-bash\">Apple\nMango\nPeach\nOrange\nBanana<\/code><\/pre>\n<h3>3. Recorriendo Conjuntos con Bucles<\/h3>\n<p>Los conjuntos son colecciones desordenadas de elementos \u00fanicos. Puedes recorrerlas utilizando un bucle <code>for<\/code>.<\/p>\n<pre><code class=\"language-python\">fruits_set = {\"Apple\", \"Mango\", \"Peach\", \"Orange\", \"Banana\"}\n\nfor fruit in fruits_set:\n\tprint(fruit)<\/code><\/pre>\n<p>En este ejemplo, el bucle <code>for<\/code> itera a trav\u00e9s del conjunto. Sin embargo, como los conjuntos no est\u00e1n ordenados, el orden de iteraci\u00f3n puede no coincidir con el orden en que se definieron los elementos en el conjunto. En cada iteraci\u00f3n, la variable <code>fruit<\/code> toma el valor del elemento actual del conjunto. El c\u00f3digo debe dar una salida similar a la siguiente (el orden puede variar):<\/p>\n<pre><code class=\"language-bash\">Mango\nBanana\nPeach\nApple\nOrange<\/code><\/pre>\n<h3>4. Iterando a Trav\u00e9s de Cadenas<\/h3>\n<p>Las cadenas son secuencias de caracteres que puedes recorrer car\u00e1cter a car\u00e1cter.<\/p>\n<pre><code class=\"language-python\">string = \"Kinsta\"\n\nfor char in string:\n\tprint(char)<\/code><\/pre>\n<p>El c\u00f3digo anterior itera a trav\u00e9s de la cadena \u00abKinsta\u00bb e imprime cada car\u00e1cter en una nueva l\u00ednea. En cada iteraci\u00f3n, la variable <code>char<\/code> toma el valor del car\u00e1cter actual de la cadena. El c\u00f3digo deber\u00eda dar la siguiente salida:<\/p>\n<pre><code class=\"language-bash\">K\ni\nn\ns\nt\na<\/code><\/pre>\n<h3>5. Recorriendo un Diccionario<\/h3>\n<p>Utilizar el bucle <code>for<\/code> es similar para listas, conjuntos, tuplas y cadenas, pero es diferente para los diccionarios, ya que utilizan pares clave-valor para almacenar elementos. Los diccionarios presentan un caso \u00fanico para el bucle, ya que puedes iterarlos utilizando distintos enfoques. \u00c9stos son los distintos enfoques que puedes utilizar para recorrer un diccionario de Python:<\/p>\n<ul>\n<li><strong>Iterar a trav\u00e9s de las claves:<\/strong>\n<pre><code class=\"language-python\">countries_capital = {\n    \"USA\": \"Washington D.C.\",\n    \"Australia\": \"Canberra\",\n    \"France\": \"Paris\",\n    \"Egypt\": \"Cairo\",\n    \"Japan\": \"Tokyo\"\n}\n\nfor country in countries_capital.keys():\n    print(country)<\/code><\/pre>\n<p>El c\u00f3digo anterior define un diccionario llamado <code>countries_capital<\/code>, donde los nombres de los pa\u00edses son las claves, y sus respectivas capitales son los valores. El bucle <code>for<\/code> itera a trav\u00e9s de las claves del diccionario <code>countries_capital<\/code> utilizando el m\u00e9todo <code>keys()<\/code>. Este m\u00e9todo devuelve un objeto vista que muestra una lista de las claves del diccionario, lo que facilita el bucle a trav\u00e9s de todas las claves. En cada iteraci\u00f3n, la variable <code>country<\/code> toma el valor de la clave actual. Este c\u00f3digo deber\u00eda dar la siguiente salida:<\/p>\n<pre><code class=\"language-bash\">USA\nAustralia\nFrance\nEgypt\nJapan<\/code><\/pre>\n<\/li>\n<li><strong>Iterando a trav\u00e9s de los valores:<\/strong>\n<pre><code class=\"language-python\">countries_capital = {\n    \"USA\": \"Washington D.C.\",\n    \"Australia\": \"Canberra\",\n    \"France\": \"Paris\",\n    \"Egypt\": \"Cairo\",\n    \"Japan\": \"Tokyo\"\n}\n\nfor capital in countries_capital.values():\n    print(capital)<\/code><\/pre>\n<p>En el c\u00f3digo anterior, el <code>for<\/code> itera a trav\u00e9s de los valores del diccionario <code>countries_capital<\/code> utilizando el m\u00e9todo <code>values()<\/code>. Este m\u00e9todo devuelve un objeto vista que muestra una lista de los valores del diccionario, facilitando la iteraci\u00f3n a trav\u00e9s de todos los valores. En cada iteraci\u00f3n, la variable <code>capital<\/code> toma el valor del valor actual de la lista. Este c\u00f3digo deber\u00eda dar la siguiente salida:<\/p>\n<pre><code class=\"language-bash\">Washington D.C.\nCanberra\nParis\nCairo\nTokyo<\/code><\/pre>\n<\/li>\n<li><strong>Iterando a trav\u00e9s de pares clave-valor:<\/strong>\n<pre><code class=\"language-python\">countries_capital = {\n    \"USA\": \"Washington D.C.\",\n    \"Australia\": \"Canberra\",\n    \"France\": \"Paris\",\n    \"Egypt\": \"Cairo\",\n    \"Japan\": \"Tokyo\"\n}\n\nfor country, capital in countries_capital.items():\n    print(country, \":\", capital)<\/code><\/pre>\n<p>El c\u00f3digo anterior demuestra c\u00f3mo iterar a trav\u00e9s de las claves y los valores del diccionario <code>countries_capital<\/code> utilizando el m\u00e9todo <code>items()<\/code>. El m\u00e9todo <code>items()<\/code> devuelve un objeto vista que muestra una lista de tuplas clave-valor del diccionario. En el bucle <code>for<\/code>, cada iteraci\u00f3n desempaqueta un par clave-valor del elemento actual de la lista. A las variables <code>country<\/code> y <code>capital<\/code> se les asigna la clave y el valor correspondientes, respectivamente. Este c\u00f3digo deber\u00eda dar el siguiente resultado:<\/p>\n<pre><code class=\"language-bash\">USA : Washington D.C.\nAustralia : Canberra\nFrance : Paris\nEgypt : Cairo\nJapan : Tokyo<\/code><\/pre>\n<\/li>\n<\/ul>\n<h3>Iteraci\u00f3n Avanzada con enumerate() en Python<\/h3>\n<p>Otra forma de iterar sobre iterables de Python devolviendo tanto el \u00edndice como el valor correspondiente de los elementos es mediante la funci\u00f3n <code>enumerate()<\/code>. Mira este ejemplo:<\/p>\n<pre><code class=\"language-python\">fruits_list = [\"Apple\", \"Mango\", \"Peach\", \"Orange\", \"Banana\"]\n\nfor index, fruit in enumerate(fruits_list):\n    print(fruit, index)<\/code><\/pre>\n<p>Este es el resultado:<\/p>\n<pre><code class=\"language-bash\">Apple 0\nMango 1\nPeach 2\nOrange 3\nBanana 4<\/code><\/pre>\n<p>La funci\u00f3n <code>enumerate<\/code> tambi\u00e9n te permite especificar el \u00edndice inicial, adem\u00e1s de <code>0<\/code>, para la operaci\u00f3n de iteraci\u00f3n. Puedes modificar el ejemplo anterior como sigue:<\/p>\n<pre><code class=\"language-python\">fruits_list = [\"Apple\", \"Mango\", \"Peach\", \"Orange\", \"Banana\"]\nfor index, fruit in enumerate(fruits_list, start = 2):\n    print(fruit, index)\n<\/code><\/pre>\n<p>Este es el resultado:<\/p>\n<pre><code class=\"language-bash\">Apple 2\nMango 3\nPeach 4\nOrange 5\nBanana 6<\/code><\/pre>\n<p>Observa que, aunque este ejemplo especifica el \u00edndice inicial de la enumeraci\u00f3n, <code>enumerate<\/code> no aplica una indexaci\u00f3n basada en cero a la iterable, como ocurre con las listas nativas. Simplemente a\u00f1ade el valor inicial al primer elemento de la lista hasta el \u00faltimo.<\/p>\n<h2>C\u00f3mo Implementar los Generadores de Python<\/h2>\n<p>Los generadores son iterables especiales de Python que te permiten construir objetos generadores sin crear expl\u00edcitamente tipos incorporados como listas, conjuntos o diccionarios. Puedes utilizar generadores para producir valores sobre la marcha bas\u00e1ndote en la l\u00f3gica de generaci\u00f3n.<\/p>\n<p>Los generadores utilizan la sentencia <code>yield<\/code> para devolver los valores generados de uno en uno. Aqu\u00ed tienes un ejemplo de iterables generadores:<\/p>\n<pre><code class=\"language-python\">def even_generator(n):\n    counter = 0\n    while counter &lt;= n:\n        if counter % 2 == 0:\n            yield counter\n        counter += 1\n\nfor num in even_generator(20):\n    print(num)<\/code><\/pre>\n<p>El c\u00f3digo proporcionado define una funci\u00f3n <code>even_generator<\/code> que produce una secuencia de n\u00fameros pares desde <code>0<\/code> hasta un <code>n<\/code> especificado utilizando la sentencia <code>yield<\/code>. Utiliza un bucle para generar estos valores e itera a trav\u00e9s del resultado utilizando el iterador <code>num<\/code>, asegurando la evaluaci\u00f3n de todos los valores dentro del rango dado. Este c\u00f3digo genera una lista de n\u00fameros pares desde <code>0<\/code> hasta <code>20<\/code>, como se muestra a continuaci\u00f3n:<\/p>\n<pre><code class=\"language-bash\">0\n2\n4\n6\n8\n10\n12\n14\n16\n18\n20<\/code><\/pre>\n<p>Puedes conseguir a\u00fan m\u00e1s concisi\u00f3n cuando trabajes con expresiones generadoras. Por ejemplo, puedes dise\u00f1ar una funci\u00f3n generadora que tambi\u00e9n incorpore l\u00f3gica de bucle:<\/p>\n<pre><code class=\"language-python\">cube = (num ** 3 for num in range(1, 6))\nfor c in cube:\n    print(c)<\/code><\/pre>\n<p>Aqu\u00ed, asignas la variable <code>cube<\/code> al resultado de una funci\u00f3n que calcula el cubo de los valores comprendidos entre 1 y 6. A continuaci\u00f3n, realiza un bucle a trav\u00e9s de los valores dentro del intervalo especificado, mostrando el resultado del c\u00e1lculo, uno tras otro. El resultado es el siguiente:<\/p>\n<pre><code class=\"language-bash\">1\n8\n27\n64\n125<\/code><\/pre>\n<h2>C\u00f3mo Construir Iterables Personalizados<\/h2>\n<p>Python te permite personalizar a\u00fan m\u00e1s las operaciones iterables utilizando iteradores. Los objetos iteradores implementan el protocolo iterador y contienen 2 m\u00e9todos: <code>__iter__()<\/code> y <code>__next__()<\/code>. El m\u00e9todo <code>__iter__()<\/code> devuelve un objeto iterador, mientras que <code>__next__()<\/code> devuelve el siguiente valor en un contenedor iterable. Aqu\u00ed tienes un ejemplo de iteradores en Python:<\/p>\n<pre><code class=\"language-python\">even_list = [2, 4, 6, 8, 10]\nmy_iterator = iter(even_list)\nprint(next(my_iterator)) # Prints 2\nprint(next(my_iterator)) # Prints 4\nprint(next(my_iterator)) # Prints 6<\/code><\/pre>\n<p>En este ejemplo, utilizas el m\u00e9todo <code>iter()<\/code> para crear un objeto iterador (<code>my_iterator<\/code>) a partir de la lista. Para acceder a cada uno de los elementos de la lista, envuelves el objeto iterador con el m\u00e9todo <code>next()<\/code>. Como las listas son colecciones ordenadas, el iterador devuelve los elementos secuencialmente.<\/p>\n<p>Los iteradores personalizados son ideales para operaciones que implican grandes conjuntos de datos que no puedes cargar en memoria simult\u00e1neamente. Como la memoria es cara y propensa a las limitaciones de espacio, puedes utilizar un iterador para procesar elementos de datos individualmente sin cargar todo el conjunto de datos en la memoria.<\/p>\n<h2>Funciones Iterables<\/h2>\n<p>Python utiliza funciones para recorrer, manipular e inspeccionar los elementos de una lista. Algunas funciones de lista comunes son:<\/p>\n<ul>\n<li><code>sum<\/code> \u2014 Devuelve la suma de un iterable dado, siempre que la colecci\u00f3n sea de tipos num\u00e9ricos (enteros, valores de coma flotante y n\u00fameros complejos)<\/li>\n<li><code>any<\/code> \u2014 Devuelve <code>true<\/code> si alguno de los elementos del iterable es verdadero. En caso contrario, devuelve <code>false<\/code>.<\/li>\n<li><code>all<\/code> \u2014 Devuelve <code>true<\/code> si todos los elementos del iterable son verdaderos. En caso contrario, devuelve <code>false<\/code>.<\/li>\n<li><code>max<\/code> \u2014 Devuelve el valor m\u00e1ximo de una colecci\u00f3n iterable dada<\/li>\n<li><code>min<\/code> \u2014 Devuelve el valor m\u00ednimo de una colecci\u00f3n iterable dada<\/li>\n<li><code>len<\/code> \u2014 Devuelve la longitud de un iterable dado<\/li>\n<li><code>append<\/code> \u2014 A\u00f1ade un valor al final de una lista iterable<\/li>\n<\/ul>\n<p>El siguiente ejemplo muestra estas funciones con una lista:<\/p>\n<pre><code class=\"language-python\">even_list = [2, 4, 6, 8, 10]\n\nprint(sum(even_list))\nprint(any(even_list))\nprint(max(even_list))\nprint(min(even_list))\neven_list.append(14) # Add 14 to the end of the list\nprint(even_list)\neven_list.insert(0, 0) # Insert 0 and specified index [0]\nprint(even_list)\nprint(all(even_list)) # Return true only if ALL elements in the list are true\nprint(len(even_list)) # Print the size of the list<\/code><\/pre>\n<p>\u00c9ste es el resultado:<\/p>\n<pre><code class=\"language-bash\">30\nTrue\n10\n2\n[2, 4, 6, 8, 10, 14]\n[0, 2, 4, 6, 8, 10, 14]\nFalse\n7<\/code><\/pre>\n<p>En el ejemplo anterior, la funci\u00f3n <code>append<\/code> a\u00f1ade un \u00fanico par\u00e1metro (<code>14<\/code>) al final de la lista. La funci\u00f3n <code>insert<\/code> permite especificar el \u00edndice de inserci\u00f3n. Por lo tanto, <code>even_list.insert(0, 0)<\/code> inserta <code>0<\/code> en el \u00edndice <code>[0]<\/code>.<br \/>\nLa sentencia <code>print(all(even_list))<\/code> devuelve <code>false<\/code> porque hay un valor <code>0<\/code> en la lista, interpretado como <code>false<\/code>. Por \u00faltimo, <code>print(len(even_list))<\/code> devuelve la longitud del iterable.<\/p>\n<h2>Operaciones Avanzadas con Iterables<\/h2>\n<p>Python ofrece funciones avanzadas que favorecen la concisi\u00f3n en las operaciones con iterables. A continuaci\u00f3n se enumeran algunas de ellas.<\/p>\n<h3>1. Comprensiones de lista<\/h3>\n<p>Las comprensiones de listas te permiten crear nuevas listas aplicando una funci\u00f3n a cada elemento de las listas existentes. Aqu\u00ed tienes un ejemplo:<\/p>\n<pre><code class=\"language-python\">my_numbers = [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]\neven_number_list = [num for num in my_numbers if num%2 == 0]\nprint(even_number_list)<\/code><\/pre>\n<p>En este fragmento de c\u00f3digo, se crea una lista llamada <code>my_numbers<\/code> con enteros de <code>11<\/code> a <code>20<\/code>. El objetivo es generar una nueva lista, <code>even_number_list<\/code>, que contenga s\u00f3lo enteros pares. Para conseguirlo, aplica una comprensi\u00f3n de lista que devuelva un entero de <code>my_numbers<\/code> s\u00f3lo si ese entero es par. La sentencia <code>if<\/code> contiene la l\u00f3gica que devuelve los n\u00fameros pares.<\/p>\n<p>Este es el resultado:<\/p>\n<pre><code class=\"language-bash\">[12, 14, 16, 18, 20]<\/code><\/pre>\n<h3>2. Zip<\/h3>\n<p>La funci\u00f3n <code>zip()<\/code> de Python combina m\u00faltiples iterables en tuplas. Las tuplas almacenan m\u00faltiples valores en una variable y son inmutables. A continuaci\u00f3n te explicamos c\u00f3mo combinar iterables utilizando <code>zip()<\/code>:<\/p>\n<pre><code class=\"language-python\">fruits = [\"apple\", \"orange\", \"banana\"]\nrating = [1, 2, 3]\n\nfruits_rating = zip(rating, fruits)\nprint(list(fruits_rating))<\/code><\/pre>\n<p>En este ejemplo, <code>fruits_rating<\/code> empareja cada valoraci\u00f3n con una fruta, creando una \u00fanica iterable. El resultado es:<\/p>\n<pre><code class=\"language-bash\">[(1, 'apple'), (2, 'orange'), (3, 'banana')]<\/code><\/pre>\n<p>Este c\u00f3digo act\u00faa como un sistema de puntuaci\u00f3n para distintas frutas, con la primera lista (<code>fruits<\/code>) representando las frutas y la segunda lista representando las puntuaciones en una escala de 1 a 3.<\/p>\n<h3>3. Filter<\/h3>\n<p>Otra funci\u00f3n avanzada, filter, toma 2 argumentos \u2014 una funci\u00f3n y un iterable. Aplica la funci\u00f3n a cada elemento del iterable y, a continuaci\u00f3n, devuelve un nuevo iterable que contiene s\u00f3lo aquellos elementos para los que la funci\u00f3n devuelve un valor <code>true<\/code>. El siguiente ejemplo filtra una lista de valores enteros dentro de un rango determinado para devolver s\u00f3lo los pares:<\/p>\n<pre><code class=\"language-python\">def is_even(n):\n    return n%2 == 0\n\nnums_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\neven_list = filter(is_even, nums_list)\nprint(list(even_list))<\/code><\/pre>\n<p>En el c\u00f3digo anterior, empiezas definiendo una funci\u00f3n, <code>is_even<\/code>, para calcular un n\u00famero par que se le pasa. A continuaci\u00f3n, creas una lista de valores enteros entre 1 y 10 \u2014 <code>nums_list<\/code>. Por \u00faltimo, defines una nueva lista, <code>even_list<\/code>, que utiliza la funci\u00f3n <code>filter()<\/code> para aplicar el m\u00e9todo definido por el usuario a la lista original y devolver s\u00f3lo los elementos pares de la lista. \u00c9ste es el resultado:<\/p>\n<pre><code class=\"language-bash\">[2, 4, 6, 8, 10]<\/code><\/pre>\n<h3>4. Map<\/h3>\n<p>Al igual que <code>filter()<\/code>, la funci\u00f3n <code>map()<\/code> de Python toma como argumentos un iterable y una funci\u00f3n. Pero en lugar de devolver elementos del iterable inicial, devuelve un nuevo iterable que contiene el resultado de la funci\u00f3n aplicada a cada elemento del primer iterable. Para elevar al cuadrado una lista de enteros, utiliza la funci\u00f3n <code>map()<\/code>:<\/p>\n<pre><code class=\"language-python\">my_list = [2, 4, 6, 8, 10]\nsquare_numbers = map(lambda x: x ** 2, my_list)\nprint(list(square_numbers))<\/code><\/pre>\n<p>En este c\u00f3digo, <code>x<\/code> es el iterador que recorre la lista y la transforma mediante el c\u00e1lculo del cuadrado. La funci\u00f3n <code>map()<\/code> ejecuta esta operaci\u00f3n tomando la lista original como argumento junto a una funci\u00f3n de mapeo. El resultado es el siguiente<\/p>\n<pre><code class=\"language-bash\">[4, 16, 36, 64, 100]<\/code><\/pre>\n<h3>5. Sorted<\/h3>\n<p>La funci\u00f3n <code>sorted<\/code> ordena los elementos de un iterable dado en un orden determinado (ascendente o descendente) y lo devuelve como una lista. Recibe un m\u00e1ximo de 3 par\u00e1metros: <code>iterable<\/code>, <code>reverse<\/code>(opcional) y <code>key<\/code>(opcional). Entonces, <code>reverse<\/code> por defecto es <code>False<\/code>, y si se establece en <code>True<\/code>, los elementos se ordenan en orden descendente. <code>key<\/code> es una funci\u00f3n que calcula un valor para determinar el orden de clasificaci\u00f3n del elemento en una iterable y por defecto es <code>None<\/code>.<\/p>\n<p>Aqu\u00ed tienes un ejemplo de c\u00f3mo puedes aplicar la funci\u00f3n <code>sorted<\/code> en varios iterables:<\/p>\n<pre><code class=\"language-python\"># set\npy_set = {'e', 'a', 'u', 'o', 'i'}\nprint(sorted(py_set, reverse=True))\n\n# dictionary\npy_dict = {'e': 1, 'a': 2, 'u': 3, 'o': 4, 'i': 5}\nprint(sorted(py_dict, reverse=True))\n\n# frozen set\nfrozen_set = frozenset(('e', 'a', 'u', 'o', 'i'))\nprint(sorted(frozen_set, reverse=True))\n\n# string\nstring = \"kinsta\"\nprint(sorted(string))\n\n# list\npy_list = ['a', 'e', 'i', 'o', 'u']\nprint(py_list)<\/code><\/pre>\n<p>Esto te da la siguiente salida:<\/p>\n<pre><code class=\"language-bash\">['u', 'o', 'i', 'e', 'a']\n['u', 'o', 'i', 'e', 'a']\n['u', 'o', 'i', 'e', 'a']\n['a', 'i', 'k', 'n', 's', 't']\n['a', 'e', 'i', 'o', 'u']<\/code><\/pre>\n<h2>C\u00f3mo Manejar Casos L\u00edmite y Errores en Iterables<\/h2>\n<p>Los casos extremos son comunes en muchos escenarios de programaci\u00f3n, y debes anticiparte a ellos en los iterables. Exploremos algunas posibilidades con las que te puedes encontrar.<\/p>\n<h3>1. Iterables Vac\u00edos<\/h3>\n<p>Puedes encontrarte con problemas cuando un iterable est\u00e1 vac\u00edo, pero alguna l\u00f3gica de programaci\u00f3n intenta recorrerlo. Puedes abordar esto mediante programaci\u00f3n para evitar ineficiencias. Aqu\u00ed tienes un ejemplo que utiliza una sentencia <code>if not<\/code> para comprobar si una lista est\u00e1 vac\u00eda:<\/p>\n<pre><code class=\"language-python\">fruits_list=[]\nif not fruits_list:\n    print(\"The list is empty\")<\/code><\/pre>\n<p>\u00c9ste es el resultado:<\/p>\n<pre><code class=\"language-bash\">The list is empty<\/code><\/pre>\n<h3>2. Iterables Anidados<\/h3>\n<p>Python tambi\u00e9n admite iterables anidados, que son objetos iterables que contienen otros iterables en su interior. Por ejemplo, puedes tener una lista de alimentos que contenga listas anidadas de categor\u00edas de alimentos, como carnes, verduras y cereales. A continuaci\u00f3n te explicamos c\u00f3mo modelar un escenario de este tipo utilizando iterables anidados:<\/p>\n<pre><code class=\"language-python\">food_list = [[\"kale\", \"broccoli\", \"ginger\"], [\"beef\", \"chicken\", \"tuna\"], [\"barley\", \"oats\", \"corn\"]]\nfor inner_list in food_list:\n    for food in inner_list:\n        print(food)<\/code><\/pre>\n<p>En el c\u00f3digo anterior, la variable <code>food_list<\/code> contiene tres listas anidadas, que representan diferentes categor\u00edas de alimentos. El bucle exterior (<code>for inner_list in food_list:<\/code>) itera a trav\u00e9s de la lista primaria, y el bucle interior (<code>for food in inner_list:<\/code>) itera a trav\u00e9s de cada lista anidada, imprimiendo cada alimento. El resultado es el siguiente:<\/p>\n<pre><code class=\"language-bash\">kale\nbroccoli\nginger\nbeef\nchicken\ntuna\nbarley\noats\ncorn<\/code><\/pre>\n<h3>3. Manejo de Excepciones<\/h3>\n<p>En Python, los iterables tambi\u00e9n admiten operaciones de gesti\u00f3n de excepciones. Por ejemplo, puedes iterar sobre una lista y encontrarte con un <code>IndexError<\/code>. Este error significa que est\u00e1s intentando hacer referencia a un elemento que excede los l\u00edmites del iterable. A continuaci\u00f3n te explicamos c\u00f3mo manejar una excepci\u00f3n de este tipo utilizando un bloque <code>try-except<\/code>:<\/p>\n<pre><code class=\"language-python\">fruits_list = [\"apple\", \"mango\", \"orange\", \"pear\"]\ntry:\n    print(fruits_list[5])\nexcept IndexError:\n    print(\"The index specified is out of range.\")<\/code><\/pre>\n<p>En el c\u00f3digo anterior, el iterable <code>fruits_list<\/code> contiene cinco elementos asignados por los \u00edndices <code>0<\/code> a <code>5<\/code> en la colecci\u00f3n de listas. La frase <code>try<\/code> contiene una funci\u00f3n <code>print<\/code> que intenta mostrar el valor en el \u00edndice <code>5<\/code> del iterable, que no existe. Esto ejecuta la funci\u00f3n <code>except<code> clause, returning the associated error message. The console returns the error:<\/code><\/code><\/p>\n<pre><code class=\"language-bash\">The index specified is out of range.<\/code><\/pre>\n<h2>Resumen<\/h2>\n<p>Dominar la iteraci\u00f3n en Python es crucial para conseguir un c\u00f3digo eficiente y legible. Comprender las distintas formas de iterar sobre diferentes estructuras de datos, utilizando comprensiones, generadores y aprovechando las funciones incorporadas, te convertir\u00e1 en un programador de Python competente.<\/p>\n<p>Tanto si trabajas con listas, diccionarios, cadenas u objetos personalizados, saber utilizar y manipular iterables es una habilidad indispensable en la <a href=\"https:\/\/kinsta.com\/es\/blog\/programacion-orientada-objetos-python\/\">programaci\u00f3n en Python<\/a>.<\/p>\n<p>Cuando termines de crear tu aplicaci\u00f3n Python y quieras alojarla en l\u00ednea, prueba el<a href=\"https:\/\/sevalla.com\/application-hosting\/\"> Alojamiento de Aplicaciones de Kinsta<\/a>. \u00a1Tus primeros 20 $ corren de nuestra cuenta!<\/p>\n<p><em>\u00bfNos hemos dejado algo en esta gu\u00eda? Por favor, \u00a1comp\u00e1rtelo en la secci\u00f3n de comentarios m\u00e1s abajo!<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En la programaci\u00f3n en Python, comprender y utilizar los iterables con eficacia es fundamental para una programaci\u00f3n competente. Los iterables son objetos sobre los que puedes &#8230;<\/p>\n","protected":false},"author":199,"featured_media":72150,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[1320],"class_list":["post-72149","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Iterar Como un Profesional: Gu\u00eda de Iterables de Python - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Domina el arte de la iteraci\u00f3n en Python con nuestra completa gu\u00eda sobre iterables de Python. \u00a1Explora los entresijos de las iterables de Python hoy mismo!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Iterar Como un Profesional: Gu\u00eda de Iterables de Python\" \/>\n<meta property=\"og:description\" content=\"Domina el arte de la iteraci\u00f3n en Python con nuestra completa gu\u00eda sobre iterables de Python. \u00a1Explora los entresijos de las iterables de Python hoy mismo!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinsta.es\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-12-01T08:52:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-12-18T16:44:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/iterables-in-python.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"3043\" \/>\n\t<meta property=\"og:image:height\" content=\"1522\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jeremy Holcombe\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Domina el arte de la iteraci\u00f3n en Python con nuestra completa gu\u00eda sobre iterables de Python. \u00a1Explora los entresijos de las iterables de Python hoy mismo!\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/iterables-in-python.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeremy Holcombe\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/\"},\"author\":{\"name\":\"Jeremy Holcombe\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\"},\"headline\":\"Iterar Como un Profesional: Gu\u00eda de Iterables de Python\",\"datePublished\":\"2023-12-01T08:52:59+00:00\",\"dateModified\":\"2023-12-18T16:44:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/\"},\"wordCount\":2419,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/iterables-in-python.jpg\",\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/\",\"url\":\"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/\",\"name\":\"Iterar Como un Profesional: Gu\u00eda de Iterables de Python - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/iterables-in-python.jpg\",\"datePublished\":\"2023-12-01T08:52:59+00:00\",\"dateModified\":\"2023-12-18T16:44:39+00:00\",\"description\":\"Domina el arte de la iteraci\u00f3n en Python con nuestra completa gu\u00eda sobre iterables de Python. \u00a1Explora los entresijos de las iterables de Python hoy mismo!\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/iterables-in-python.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/iterables-in-python.jpg\",\"width\":3043,\"height\":1522},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python\",\"item\":\"https:\/\/kinsta.com\/es\/secciones\/python\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Iterar Como un Profesional: Gu\u00eda de Iterables de Python\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/es\/#website\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluciones de alojamiento premium, r\u00e1pidas y seguras\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/es\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/es\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinsta.es\/\",\"https:\/\/x.com\/Kinsta_ES\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\",\"name\":\"Jeremy Holcombe\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"caption\":\"Jeremy Holcombe\"},\"description\":\"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/jeremyholcombe\/\"],\"url\":\"https:\/\/kinsta.com\/es\/blog\/author\/jeremyholcombe\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Iterar Como un Profesional: Gu\u00eda de Iterables de Python - Kinsta\u00ae","description":"Domina el arte de la iteraci\u00f3n en Python con nuestra completa gu\u00eda sobre iterables de Python. \u00a1Explora los entresijos de las iterables de Python hoy mismo!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/","og_locale":"es_ES","og_type":"article","og_title":"Iterar Como un Profesional: Gu\u00eda de Iterables de Python","og_description":"Domina el arte de la iteraci\u00f3n en Python con nuestra completa gu\u00eda sobre iterables de Python. \u00a1Explora los entresijos de las iterables de Python hoy mismo!","og_url":"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinsta.es\/","article_published_time":"2023-12-01T08:52:59+00:00","article_modified_time":"2023-12-18T16:44:39+00:00","og_image":[{"width":3043,"height":1522,"url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/iterables-in-python.jpg","type":"image\/jpeg"}],"author":"Jeremy Holcombe","twitter_card":"summary_large_image","twitter_description":"Domina el arte de la iteraci\u00f3n en Python con nuestra completa gu\u00eda sobre iterables de Python. \u00a1Explora los entresijos de las iterables de Python hoy mismo!","twitter_image":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/iterables-in-python.jpg","twitter_creator":"@Kinsta_ES","twitter_site":"@Kinsta_ES","twitter_misc":{"Escrito por":"Jeremy Holcombe","Tiempo de lectura":"13 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/"},"author":{"name":"Jeremy Holcombe","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21"},"headline":"Iterar Como un Profesional: Gu\u00eda de Iterables de Python","datePublished":"2023-12-01T08:52:59+00:00","dateModified":"2023-12-18T16:44:39+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/"},"wordCount":2419,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/iterables-in-python.jpg","inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/","url":"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/","name":"Iterar Como un Profesional: Gu\u00eda de Iterables de Python - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/iterables-in-python.jpg","datePublished":"2023-12-01T08:52:59+00:00","dateModified":"2023-12-18T16:44:39+00:00","description":"Domina el arte de la iteraci\u00f3n en Python con nuestra completa gu\u00eda sobre iterables de Python. \u00a1Explora los entresijos de las iterables de Python hoy mismo!","breadcrumb":{"@id":"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/#primaryimage","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/iterables-in-python.jpg","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/iterables-in-python.jpg","width":3043,"height":1522},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/es\/blog\/iterables-de-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/es\/"},{"@type":"ListItem","position":2,"name":"Python","item":"https:\/\/kinsta.com\/es\/secciones\/python\/"},{"@type":"ListItem","position":3,"name":"Iterar Como un Profesional: Gu\u00eda de Iterables de Python"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/es\/#website","url":"https:\/\/kinsta.com\/es\/","name":"Kinsta\u00ae","description":"Soluciones de alojamiento premium, r\u00e1pidas y seguras","publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/es\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinsta.es\/","https:\/\/x.com\/Kinsta_ES","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21","name":"Jeremy Holcombe","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","caption":"Jeremy Holcombe"},"description":"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.","sameAs":["https:\/\/www.linkedin.com\/in\/jeremyholcombe\/"],"url":"https:\/\/kinsta.com\/es\/blog\/author\/jeremyholcombe\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/72149","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/users\/199"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/comments?post=72149"}],"version-history":[{"count":6,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/72149\/revisions"}],"predecessor-version":[{"id":72412,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/72149\/revisions\/72412"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/72149\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/72149\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/72149\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/72149\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/72149\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/72149\/translations\/jp"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/72149\/translations\/es"},{"href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/72149\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media\/72150"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media?parent=72149"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/tags?post=72149"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/topic?post=72149"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}