Cómo convertir una lista de cadenas en una lista de enteros en Python

El modo más pitónico de convertir una lista de cadenas a una lista de enteros es utilizar la comprensión de listas [int(x) for x in strings]. Recorre todos los elementos de la lista y convierte cada elemento de la lista x en un valor entero utilizando la función incorporada int(x).

Este artículo muestra las formas más sencillas de convertir una lista unidimensional formada sólo por cadenas en una lista de enteros.

Problema: Dada una lista de cadenas ["1", "2", "-3"]. ¿Cómo convertirla en una lista de enteros [1, 2, -3]?

  • Variante del problema: Dada una lista de cadenas con representaciones mixtas ["1", "2.0", "-3.4"]. ¿Cómo convertirla en una lista de enteros [1, 2, -3]?

Nos sumergiremos primero en el problema base más fácil y examinaremos la variante del problema en el Método 5.

Método 1: Comprensión de listas

Supongamos que tenemos una lista:

a = ["1", "2", "-3"]

Ahora, comprobamos el tipo del primer elemento de la lista:

print(type(a[0]))
# <class 'str'>

Aplicamos la función incorporada int(), y obtenemos una lista de enteros utilizando comprensión de listas:

a = ["1", "2", "-3"]
print([int(x) for x in a])
# [1, 2, -3]

? La comprensión de listas es una manera compacta de crear listas. La fórmula simple es [expresión + contexto]. Expresión: ¿Qué hacer con cada elemento de la lista? Contexto: ¿Qué elementos seleccionar? El contexto consiste en un número arbitrario de sentencias for e if.

Comprobamos el tipo de los números de la nueva lista:

A = [int(x) for x in a]
print(type(a[0]))
# <class 'int'>

La función incorporada int() convierte una cadena en un entero. Así, nos ayuda a crear una nueva lista de enteros a partir de la lista de cadenas en una sola línea de código.

Método 2: Función map

La función incorporada map está bien optimizada y es eficiente; cuando se llama, los elementos de la lista se recuperan en el momento de acceder. Por lo tanto, sólo un elemento se almacena y procesa en la memoria, lo que permite que el programa no almacene toda la lista de elementos en la memoria del sistema.

Apliquemos a la misma lista a el siguiente código:

a = ["1", "2", "-3"]
print(list(map(int, a)))
# [1, 2, -3]

? La función map() aplica el primer argumento, una función, a cada elemento de un iterable. Transforma cada elemento del iterable original en un nuevo elemento y devuelve un nuevo objeto iterable map con los valores transformados. Para obtener una lista, es necesario convertirla mediante el constructor incorporado list().

Método 3: Bucle for

Por supuesto, también puedes convertir una lista de cadenas en una lista de enteros utilizando un simple bucle for. Esto es lo que haría la mayoría de la gente que viene de un lenguaje de programación como Java y C++, ya que aún no conocen la forma más pitónica utilizando comprensión de listas (ver Método 1).

a = ["1", "2", "-3"]
ints = []

for element in a:
    ints.append(int(element))

print(ints)
# [1, 2, -3]

Este método básico para convertir una lista de cadenas en una lista de enteros consta de tres pasos:

  • Crear un lista vacía con ints = [].
  • Iterar sobre cada elemento de cadena utilizando un bucle for como for element in list.
  • Convertir la cadena en un entero usando int(element) y anexarlo a la nueva lista de enteros usando el método list.append().

Método 4: Comprensión de listas + eval()

También puedes utilizar la función eval() en una comprensión de listas para convertir una lista de cadenas en una lista de enteros:

a = ["1", "2", "-3"]
ints = [eval(x) for x in a]
print(ints)
# [1, 2, -3]

? La función incorporada de Python eval(s) parsea el argumento de la cadena s en una expresión de Python, la ejecuta, y devuelve el resultado de la expresión. Si la “expresión” es una representación simple de un entero, Python convierte el argumento s en un entero.

Método 5: Representación de cadenas mixtas con redondeo

Variante del problema: Dada una lista de cadenas con representaciones mixtas ["1", "2,0", "-3,4", "3,6"]. ¿Cómo convertirla en una lista de enteros [1, 2, -3, 4]?

El reto consiste en convertir primero cada cadena en un float (número en coma flotante) y sólo después, en un entero. Estos dos pasos son esenciales y no se puede saltar ninguno porque se necesita que el float sea capaz de representar cualquier número. Pero también necesitas los enteros ya que este es el objetivo que te has propuesto: convertir una lista de cadenas en una lista de enteros.

❗ Convertir una lista de representaciones de cadenas mixtas en una lista de enteros redondeados encadenando las funciones incorporadas round() y float() en una expresión de comprensión de listas [round(float(s)) for s in a], suponiendo que la lista de representación de cadenas mixtas se almacena en la variable a.

a = ["1", "2.0", "-3.4", "3.6"]
ints = [round(float(s)) for s in a]
print(ints)
# [1, 2, -3, 4]

Crea tu propia empresa de programación

¿Quieres trabajar desde casa y ganarte la vida como desarrollador autónomo? ¡Nunca ha habido mejor momento! Los desarrolladores autónomos ganan 51 dólares por hora, de media, en Estados Unidos.

Complete Guide to Freelance Developing & Programming (IT)
  1. ¿Qué es el trabajo autónomo?

Definición: El trabajo autónomo es el acto de prestar un servicio a otra empresa o a otro cliente a cambio de una tarifa definida.

Si retrocedemos en el tiempo -digamos, diez años-, freelancing sería el acto de entregar sus servicios a otra empresa: una transacción B2B (de empresa a empresa).

Pero, desde la aparición de plataformas de freelance como Upwork o Fiverr, se ha convertido cada vez más en una transacción B2C (de empresa a cliente). Hay muchas personas, a menudo empleados, que necesitan tus servicios para ser más y más productivos.

En esencia, estás resolviendo problemas para otras personas. Estas personas pueden ser empresas, particulares o empleados. Estas personas te contratan para que les resuelvas un problema. Esto tiene sentido: en nuestro mundo, todo el mundo es empresario.

Como persona, empleado o autónomo, eres una empresa unipersonal que es contratada por organizaciones y otras empresas.

Como trabajador por cuenta ajena, ya eres un autónomo;vuelve a mirar la definición. Vendes tus servicios a otra parte. Te pagan por horas. Si tienes experiencia como empleado, también tienes experiencia como autónomo, porque ser empleado no es más que un caso especial de ser autónomo.

Pero hay muchas más formas de trabajar por cuenta propia. Como empleado, tienes un contrato entre tu empleador y tú que puede abarcar muchos meses. Como autónomo, también puedes tener este tipo de contratos: Puedes acordar contratos de muchos años; de hecho, las empresas contratan a menudo a autónomos a largo plazo. Si tiene sentido económico contratarte una vez, ¿por qué no va a tenerlo regularmente? Pero también puedes tener contratos mucho más pequeños que sólo duran unas horas.

Ser autónomo tiene todo tipo de ventajas y desventajas. Pero como el término freelance es tan amplio, no se puede generalizar: ninguna ventaja ni desventaja se aplica a cualquier tipo de trabajo autónomo. Pues bien, como autónomo, puedes aspirar a lo mejor de ambos mundos: seguridad en los ingresos y mayores ingresos, si diseñas tu negocio de autónomo de forma inteligente.

Analicemos en profundidad el nicho de los desarrolladores autónomos: ¿es atractivo?

La estructura de la organización de los talentos mundiales experimenta una transformación masiva.

  • Normalidad antes de 2020: Trabajas en un local de la empresa como trabajador por cuenta ajena.
  • Normalidad después de 2021: Trabajas a distancia como autónomo por proyectos.

Así se ven las tendencias de búsqueda en Google para el trabajo a distancia:

… y para los autónomos:

Algunas de las empresas más exitosas actualmente se encuentran en el área del trabajo a distancia y el trabajo autónomo: Upwork, Fiverr, Zoom y Atlassian, por nombrar algunas.

Entonces, ¿cómo son las cifras? ¿Está creciendo realmente el trabajo autónomo en Estados Unidos? La respuesta es: ¡SÍ!

  1. Destrezas de desarrollador autónomo

¿Qué destrezas necesitas para tener éxito como desarrollador autónomo?

Enseñando a muchos estudiantes autónomos, he llegado a saber que la mayoría no cree que tenga todas las destrezas que necesita para empezar como desarrollador autónomo. ¿Y por qué habrían de llegar a esa conclusión si hay tantas destrezas diferentes que aprender?

  • Programación
  • Marketing
  • Ventas
  • Comunicación
  • Empatía
  • Posicionamiento
  • Administración
  • Estrategia empresarial
  • Redacción de textos
  • Networking

Sin embargo, aunque todas las destrezas enumeradas son muy importantes para tu negocio como freelance, todavía no he conocido a una sola persona que sea muy hábil en todas ellas.

Considera cada una de esas destrezas como un eje de un sistema de coordenadas multidimensional. Ahora, puedes asignar a cada persona una puntuación entre 0% y 100% para cada destreza. Esta es la tarjeta de puntuación de destrezas de dos autónomos imaginarios, Alice y Bob:

Freelancer Skills

Dados dos autónomos: Alice y Bob.

  • Alice tiene talento para el marketing y la redacción. Es una programadora promedio y no es muy buena en administración.
  • Bob es un maestro de la programación -el clásico empollón-, pero no está capacitado para el marketing, las ventas o la comunicación. Sin embargo, es un gran administrador.

Esta es la pregunta del millón: ¿quién es el mejor desarrollador autónomo?

Planteada así, la pregunta puede parecer ridícula. Por supuesto, depende de cómo se posicionen ambos en el mercado. Alice puede tener una pequeña ventaja sobre Bob debido a sus destrezas en materia de personal, ventas y marketing. Sin embargo, será una victoria ajustada porque las destrezas de programación de Bob también son muy valoradas por el mercado.

Ambos ganarán algo de dinero entre el salario mínimo y el máximo (digamos que alrededor de los 51 dólares de media que ganan por hora los desarrolladores autónomos ). La clave es entender que cada persona en este planeta tiene algún valor para el mercado.

Echemos un vistazo a un tercer autónomo: .

Freelancer Skills to Hourly Rate

Digamos que Alice gana 55 dólares por hora gracias a su capacidad para vender sus destrezas. Bob gana 51 dólares por hora gracias a su gran capacidad de programación.

Supongamos que eres un principiante en ambas cosas: ventas y programación. Tus destrezas de programación son sólo un 30%, y tus habilidades de venta son aún peores, con un 10%. Pero tienes sólidas destrezas de networking, comunicación y empatía como ser humano. Eso es todo lo que necesitas: ¡puedes ofrecer valor al mercado! ¡Tus habilidades valen 23 dólares por hora!

Lo único que te queda por hacer es vender tus destrezas, involucrarte en el mercado y aumentar tus habilidades con el tiempo. Aumentarás tus destrezas de venta y marketing. Crearás autoconfianza. Con el tiempo aumentarás tus conocimientos de programación. Al involucrarte en el mercado, aumentas automáticamente tu valor para él. Tu tarifa por hora aumenta con ello.Si quieres construir tu nuevo negocio de freelancing en línea, echa un vistazo al Curso de Freelancer en Python número 1 del mundo que te da un esquema paso a paso perfeccionado por miles de estudiantes freelance como tú.