Python | Lista de inicialización con 0s y 1s alternativos

La inicialización de lista con un solo número es un problema genérico cuya solución se ha tratado muchas veces. Pero a veces necesitamos inicializar la lista con elementos que repiten alternativamente K no. de tiempos Esto tiene casos de uso en algoritmos ML o AI que requieren el preajuste de datos en listas. Analicemos ciertas formas en que se resuelve este problema.

Método #1: Uso de la comprensión de listas
En este método, insertamos elementos en la lista alternativamente para el número específico de veces que aparece cada elemento. Toma el resto de la suma de los recuentos de ambas ocurrencias de elementos con una ocurrencia particular de elemento para el cálculo del ciclo.

# Python3 code to demonstrate 
# to perform cyclic initialization
# using list comprehension
  
# count of 1 
count_1 = 4
  
# count of 0
count_0 = 3
  
# total length of list 
size = 14
  
# initializing list cyclically
# using list comprehension
test_list =  [ 1 if i % (count_1 + count_0) < count_1 
                 else 0 for i in range(size) ]
  
# printing list after change
print ("The list after initializing : " + str(test_list))
Producción:

The list after initializing : [1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0]

 
Método #2: Usaritertools.cycle() + itertools.islice()
Esta es la forma más pythonica en la que podemos realizar la inicialización cíclica. Corta cada una de las partes de la lista en el tamaño de elemento asignado de manera cíclica usando cycle la función.

# Python3 code to demonstrate 
# to perform cyclic initialization
# using itertools.cycle() + itertools.islice()
import itertools
  
# count of 1 
count_1 = 4
  
# count of 0
count_0 = 3
  
# total length of list 
size = 16
  
# getting pattern
pattern = [1] * count_1 + [0] * count_0
  
# initializing list cyclically
# using itertools.cycle() + itertools.islice()
test_list = list(itertools.islice(itertools.cycle(pattern), size))
  
# printing list after change
print ("The list after initializing : " + str(test_list))
Producción:

The list after initializing : [1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1]

Publicación traducida automáticamente

Artículo escrito por garg_ak0109 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 *