Programa Python para crear una lista centrada en cero

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))
Producción:

[-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.arangecuales 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))
Producción:

[-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))
Producción:

[-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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *