Dadas dos variables enteras, limit y diff , escriba un programa Python para crear una lista centrada en cero, usando limit , que especifica el límite de la lista y diff que especifica la diferencia común entre enteros.
Ejemplos:
Input : limit = 1, diff = 0.5 Output : [-1, -0.5, 0.0, 0.5, 1] Input : limit = 25, diff = 5 Output : [-25, -20, -15, -10, -5, 0, 5, 10, 15, 20, 25]
Enfoque n.º 1: enfoque ingenuo
Este es un enfoque ingenuo para el problema anterior. Primero, crea una lista vacía ‘lst’, y luego usamos un ciclo while para agregar el siguiente entero con una diferencia igual a ‘diff’.
# Python3 program to Convert a # list to dictionary def create(limit, diff): lst = [-limit] while lst[-1] < limit: lst.append(lst[-1] + diff) lst[-1] = limit return lst # Driver code limit = 1 diff = 0.5 print(create(limit, diff))
[-1, -0.5, 0.0, 0.5, 1]
Enfoque #2: Usar Python Numpy
El uso del módulo Numpy hace que la solución sea mucho más fácil. En este método, usamos los np.arange
cuales devuelven valores espaciados uniformemente dentro de un intervalo dado ‘diff’.
# Python3 program to Convert a # list to dictionary import numpy as np def create(limit, diff): lst = np.arange(diff, limit, diff) if (lst[-1] != limit): lst = np.r_[lst, limit] return np.r_[-lst[::-1], 0, lst].tolist() # Driver code limit = 1 diff = 0.5 print(create(limit, diff))
[-1.0, -0.5, 0.0, 0.5, 1.0]
Enfoque #3: comprensión de listas
# Python3 Python program to create a list centered on zero def create(limit, diff): length = int(((limit/diff)*2)+1) list = [-limit+i*diff for i in range(length)] return list # Driver code limit = 1 diff = 0.5 print(create(limit, diff))
[-1.0, -0.5, 0.0, 0.5, 1.0]
Publicación traducida automáticamente
Artículo escrito por Smitha Dinesh Semwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA