en python, la función zip () combina elementos de múltiples iterables iterables en un solo iterable de tuplas. Cuando se usa con la sintaxis zip ( [iter (s)] n), ofrece una forma conveniente de dividir una lista en trozos de igual tamaño.
cómo funciona:
la expresión [iter (s)] n crea una lista que contiene n copias del iterador a través de la lista s. Cada copia del iterador comienza al comienzo de la lista. El *args descarga la lista en argumentos para zip (), lo que resulta en que se pasen n iterables a la función.
verbosa equivalente:
para recrear la funcionalidad de zip ( [iter (s)] n) con código verboso:
def verbose_chunk(s, n): """Returns a list of chunks of equal size from a list.""" chunks = [] for i in range(n): chunk = [] for j in range(len(s) // n): chunk.append(next(iter(s))) chunks.append(tuple(chunk)) return chunks
Este código primero itera sobre el número deseado de fragmentos. Para cada fragmento, usa un bucle anidado para iterar sobre los elementos de la lista y agréguelos al fragmento. El fragmento se convierte en una tupla y se agrega a la lista de fragmentos.
Ejemplo:
s = [1,2,3,4,5,6,7,8,9] n = 3 print(list(zip(*[iter(s)]*n))) # [(1,2,3),(4,5,6),(7,8,9)] print(verbose_chunk(s, n)) # [(1,2,3),(4,5,6),(7,8,9)]
ambos enfoques producen el mismo resultado, con el Concise zip ( [iter (s)] n) Expresión que ofrece una sintaxis más eficiente para dividir listas en trozos.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3