Estoy tratando de obtener una salida de [3.1]
donde el número en la lista es flotante.
b = "3.1"
list1 = []
for i in b:
list1.append(i)
print(list1)
Espero que la salida sea [3.1]
, pero el código anterior genera ['3', '.', '1']
4 respuestas
Veamos que pasa debajo del capó aquí
In [9]: b = "3.1"
In [10]: for i in b:
...: print(i)
...:
3
.
1
Como puede ver, dado que b
es una cadena, iterar sobre una cadena le da caracteres individuales de la cadena, que terminan agregando a la lista, y la lista se ve como ['3', '.', '1']
Por lo tanto, debe convertir la cadena en un flotante y luego agregarla a la lista, que es tan simple como
In [11]: b = "3.1"
In [12]: [float(b)]
Out[12]: [3.1]
Aquí convertimos b en un flotante y creamos un único elemento de lista con 3.1
ya que es solo un elemento
Se puede aplicar una idea similar cuando se trata de una lista de cadenas y cada cadena representa un flotador, donde convertimos cada elemento en un flotador y hacemos una nueva lista.
In [13]: b = [ "2.7", "2.9", "3.1"]
In [14]: [float(i) for i in b]
Out[14]: [2.7, 2.9, 3.1]
for i in b: list1.append(i)
significa "para cada carácter en la cadena b
, agregue ese carácter a la lista list1
", dándole exactamente lo que solicitó: una lista de tres caracteres.
Si solo desea convertir b
en flotante y agregar a la lista, esto es suficiente:
list1.append(float(b))
En el código, la variable b es de formato de cadena. Conviértalo en flotante y agregue a la lista.
b = "3.1"
list_1 = []
list_1.append(float(b))
print (list_1)
Esto debería darle el resultado deseado.
Como lo está haciendo, la variable b está en formato de cadena. Esto hace que el bucle for agregue caracteres individuales a la lista que es respectivamente '3', '.', '1'. La conversión de una cadena a flotante debería resolver su problema.
Pruebe esto :
list1 = [float(b)]
SALIDA :
[3.1]
La razón por la que obtiene una lista como ['3', '.', '1']
es porque está iterando sobre todos los caracteres de la cadena b
. Necesita convertir el tipo de cadena de b
para flotar y luego agregarlo a una lista.
Preguntas relacionadas
Preguntas vinculadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.