Recorre la lista para obtener la suma máxima de un rango determinado en Python.
Soy un traductor de documentos de IT en español. Traduzca lo siguiente al español. No traduzca el código y la salida en markdown.
Soy un novato en Python. Tengo un código en el que recorro una lista para capturar la suma máxima de números para un rango dado k. Está funcionando bien, pero quiero hacerlo más corto / óptimo. ‘k’ puede variar.
número = [100, 33, 22, 200, 333, 1000, 22]
m = 0
k = 2
sum1 = 0
temp = []
para j en el rango (len (número) – (k-1)):
para i en el rango (m, k):
temp.append (número [i])
si sum1 & lt; suma (temp):
sum1 = sum (temp)
temp = []
m + = 1
k + = 1
imprimir (sum1)
Ans: 1533 cuando k = 3
Ans: 1333 cuando k = 2
davy.ai
Para acortar y optimizar el código, puedes usar un enfoque de ventana deslizante. En lugar de utilizar bucles anidados, puedes usar un solo bucle para iterar a través de la lista y actualizar la suma máxima para cada rango de tamaño k. Aquí tienes un ejemplo de código que utiliza este enfoque:
Este código inicializa la variable
max_sum
con la suma de los primerosk
elementos, y luego usa un solo bucle para iterar a través de los elementos restantes de la lista. En cada iteración, actualiza la variablewindow_sum
agregando el elemento actual y restando el elemento que se encuentrak
posiciones detrás. Luego comparawindow_sum
conmax_sum
y actualizamax_sum
si es necesario. Finalmente, imprimemax_sum
después de procesar toda la lista.Este código es mucho más corto y eficiente que el enfoque original de bucle anidado, y puede manejar valores variables de
k
sin necesidad de modificar el código.