He tenido problemas para calcular el promedio de los valores en 2 listas diferentes. Esto es lo que he estado haciendo (como novato en Python):
Averagelist = []
Listofvalues1 = ['1', '2', '3', '4']
Listofvalues2 = ['5', '6', '7', '8']
for i, x in enumerate(Listofvalues1):
for j, y in enumerate(Listofvalues2):
if j == i:
AVGvalue = (int(x)+int(y)/2)
Averagelist.append(AVGvalue)
He inventado este camino solo. Puede ser inútil, pero hasta ahora puedo imprimir los dos valores que quiero usar para el cálculo, pero recibo un error "ValueError: literal no válido para int () con base 10: 'somevalue'". ¿Podría ser el signo ''
?
¡Salud!
4 respuestas
Para calcular el promedio real sin redondearlo hacia abajo, use float. También necesitabas un par adicional de paréntesis; de lo contrario, sería y / 2 en lugar de (x + y / 2).
En cuanto a ese error, no estoy seguro de lo que está usando en sus listas Listofvalues como entrada, lo siguiente funcionó bien para mí.
Averagelist = []
Listofvalues1 = [1,2]
Listofvalues2 = [6,7]
for i, x in enumerate(Listofvalues1):
for j, y in enumerate(Listofvalues2):
if j == i:
AVGvalue = ((float(x)+float(y))/2)
Averagelist.append(AVGvalue)
print Averagelist
¿Quiso decir (int (x) + int (y)) / 2 en lugar de (int (x) + int (y) / 2)?
¿Necesita que sus datos se almacenen como cadenas? Tendrás que convertirlos en números (flotantes) al mismo tiempo. Esto se puede hacer sin un bucle for, utilizando la comprensión de la lista:
Listofvalues1 = ['1', '2', '3', '4']
Listofvalues2 = ['5', '6', '7', '8']
Averagelist = [(float(v1)+float(v2))/2 for (v1, v2) in zip(Listofvalues1, Listofvalues2)]
Puedes probar:
averages = [(float(e[0]) + float(e[1]))/2 for e in zip(Listofvalues1, Listofvalues2)]
Preguntas relacionadas
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.