lista de unirse a Python

Funciones y métodos de Python

El método join () le permite transformar un objeto iterable como una lista en una cadena. Es lo opuesto al método split () . Si intenta utilizar este método para unir un valor que no es un objeto iterable en una lista, encontrará el & ldquo; TypeError: solo se puede unir un iterable & rdquo; error.

En esta guía, vamos a hablar sobre lo que significa este error y cómo funciona. Veremos un ejemplo de esta lista para ayudarlo a aprender cómo funciona.




TypeError: solo se puede unir a un iterable

Echemos un vistazo a nuestro mensaje de error: TypeError: solo puede unirse a un iterable.

TypeErrors se generan cuando intenta realizar una operación en un valor cuyo tipo de datos no admite esa operación. El mensaje después del tipo de error nos dice que estamos intentando unir un valor que no es un objeto iterable.

El método join () solo te permite unir iterables como un lista o una tupla . Esto se debe a que el método de unión atraviesa todos los elementos de una secuencia y los agrega a una cadena. Si un valor no es iterable, este proceso no puede ocurrir.

Este error es común cuando intenta unir un valor que es igual a Ninguno.




Un escenario de ejemplo < / h2>

Creemos un programa para una quesería que pide una lista de quesos. Le preguntaremos al usuario si quiere que los quesos se ordenen en orden ascendente o descendente. Para empezar, definamos una lista de quesos:

quesos = ["Parmesano", "Cheddar inglés", "Feta", "Roquefort", "Brie"] < br>

El 81% de los participantes afirmaron que se sentían más seguros acerca de sus perspectivas laborales después de asistir a un bootcamp. Asigne a un bootcamp hoy mismo.

El graduado promedio de un bootcamp pasó menos de seis meses en la transición profesional, desde comenzar un bootcamp hasta encontrar su primer trabajo.

A continuación, vamos para pedirle al usuario el orden en el que quiere que aparezca la lista de quesos:


order = input ("¿Quieres que los quesos aparezcan en orden ascendente (ASC) o descendente (DESC)?")

Vamos a utilizar una & ldquo; if & rdquo; statement para traducir la respuesta que inserta un usuario en un booleano:

 if order == "ASC": reverse = False else: reverse = True 

Si un usuario inserta el valor & ldquo; ASC & rdquo ;, la lista se ordenará en orden ascendente. De lo contrario, la lista se ordenará en orden inverso.

A continuación, usaremos el método sort () para ordenar nuestra lista:

cheeses = cheeses.sort (reverse = reverse)

Nos referimos a la variable & ldquo; reverse & rdquo; que definimos anteriormente. Esto nos permite decirle al método sort () si r queremos que nuestros quesos se clasifiquen en orden ascendente o descendente.

Ahora que hemos clasificado nuestros quesos, los uniremos en una cadena y los imprimiremos en la consola: < br>

 new_cheeses = "," .join (quesos) print ("Tus quesos ordenados son:" + new_cheeses) 

El método join () une todos los quesos de los & ldquo; quesos & rdquo; lista en una cadena. Cada queso estará separado por un espacio y una coma. Incluimos estos caracteres entre comillas en nuestro código antes de llamar al método join ().

Ejecutemos nuestro programa:

¿Quieres que los quesos aparecen en orden ascendente (ASC) o descendente (DESC)? ASC

 ¿Quieres que los quesos aparezcan en orden ascendente (ASC) o descendente (DESC)? ASC Traceback (última llamada más reciente): archivo "main.py", línea 12, en & lt; módulo & gt; new_cheeses = "" .join (cheeses) TypeError: solo puede unirse a un iterable 

Nuestro código devuelve un error.




La solución

Nuestro El código pregunta al usuario el orden en el que debe aparecer la lista de quesos. Nuestro código deja de funcionar en la línea 12. Aquí es donde unimos nuestra lista de quesos en una cadena.


El problema es que el valor de & ldquo; quesos & rdquo; se vuelve igual a Ninguno en nuestro código. Esto se debe a que hemos asignado el valor del tipo ( ) a una nueva variable.

El método sort () ordena una lista en el lugar. Altera una lista existente. El método sort () no devuelve una nueva lista. Esto significa que cuando asignamos el valor de cheeses.sort (reverse = reverse) a una variable , el valor de esa variable se convierte en Ninguno.

Para resolver este problema, tenemos que eliminar la declaración de variable en la línea de código donde clasificamos nuestros quesos:

cheeses.sort (reverse = reverse)

Este código ordenará nuestra lista de quesos. El valor de "quesos" será igual al de la lista ordenada en lugar de Ninguno. Ejecutemos nuestro código y mira qué sucede:

"Career Karma entró en mi vida cuando más lo necesitaba y rápidamente me ayudó a combinar con un bootcamp. ¡Dos meses después de graduarme, encontré el trabajo de mis sueños que se alineaba con mis valores y metas en la vida! "

Venus, ingeniero de software en Rockbot

¿Desea que los quesos aparezcan en orden ascendente (ASC) o descendente (DESC)? ASC

Sus quesos clasificados son: Brie, Cheddar inglés, Feta, Parmesano, Roquefort

Nuestro código devuelve correctamente una lista ordenada de quesos. Intentemos clasificar nuestros quesos en orden descendente:

¿Quiere el ¿Los quesos aparecerán en orden ascendente (ASC) o descendente (DESC)? DESC

Sus quesos clasificados son: roquefort, parmesano, feta, cheddar inglés, brie

Nuestro código es capaz de ordenar nuestras listas tanto en orden ascendente como descendente.




Conclusión

El error & ldquo; TypeError: solo puede unirse a un iterable & rdquo; se produce cuando intenta unir un valor que no sea iterable a una cadena.

Esto puede suceder si asigna el valor de una lista incorporada método como sort () a una nueva variable e intente unir el resultado de esa operación a una cadena. Puede corregir este error asegurándose de que el valor que intenta unir en una cadena sea iterable, como una lista o una tupla.


< / a>

¡Ahora estás listo para resolver este error en tu código como un profesional!





lista de unirse a Python: StackOverflow Questions

Tutorials