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

1/5 - (1 vote)

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: T脷.

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煤.