Dividir la lista de Python por la mitad

Hemank Mehtani 30 enero 2023
  1. Use la división de listas para dividir una lista por la mitad en Python
  2. Utilice la función islice() para dividir una lista en Half Python
  3. Utilice la función accumulate() para dividir una lista por la mitad en Python
Dividir la lista de Python por la mitad

Las listas almacenan elementos en un índice particular y son mutables, lo que significa que luego podemos actualizar los valores en una lista.

Aprenderemos cómo dividir una lista por la mitad en este tutorial.

Use la división de listas para dividir una lista por la mitad en Python

La división de listas toma una parte específica de la lista para alguna operación, mientras que la lista original no se ve afectada. Eso significa que crea un duplicado de la lista para realizar la tarea asignada. El operador de corte ([:]) en Python se usa para esto.

Dividimos una lista por la mitad en el siguiente código.

lst = ["a", "b", "c", "d", "e", "f"]
print(lst[:3])
print(lst[3:])

Producción :

['a', 'b', 'c']
['d', 'e', 'f']

También podemos crear una función para dividir la lista por la mitad. Usaremos la función len() para encontrar la longitud de la lista. Usaremos la mitad de este valor y usaremos el método de división de listas para dividirlo por la mitad.

Por ejemplo,

def split_list(a_list):
    half = len(a_list) // 2
    return a_list[:half], a_list[half:]


A = ["a", "b", "c", "d", "e", "f"]
B, C = split_list(A)
print(B)
print(C)

Producción :

['a', 'b', 'c']
['d', 'e', 'f']

Creamos una función split_list que devuelve dos mitades de una lista existente.

Tenga en cuenta que no cambia la lista original, ya que crea una lista duplicada para realizar la tarea asignada.

Utilice la función islice() para dividir una lista en Half Python

En Python, itertools es el módulo incorporado que nos permite manejar los iteradores de manera eficiente.

Hace que la iteración a través de iterables como listas y cadenas sea muy fácil. La función islice es parte del módulo itertools. Imprime selectivamente los valores mencionados en su contenedor iterable pasado como argumento.

Por ejemplo,

from itertools import islice

Input = ["a", "b", "c", "d", "e", "f"]
length_to_split = [len(Input) // 2] * 2
lst = iter(Input)
Output = [list(islice(lst, elem)) for elem in length_to_split]

print("Initial list:", Input)
print("After splitting", Output)

Producción :

Initial list: ['a', 'b', 'c', 'd', 'e', 'f']
After splitting [['a', 'b', 'c'], ['d', 'e', 'f']]

Utilice la función accumulate() para dividir una lista por la mitad en Python

La función zip() se utiliza para combinar elementos de un iterable. Podemos usarlo con la función accumulate() del módulo itertools para dividir una lista por la mitad.

Por ejemplo,

from itertools import accumulate

Input = ["a", "b", "c", "d", "e", "f"]
length_to_split = [len(Input) // 2] * 2
Output = [
    Input[x - y : x] for x, y in zip(accumulate(length_to_split), length_to_split)
]
print("Initial list :", Input)
print("After splitting", Output)

Producción :

Initial list : ['a', 'b', 'c', 'd', 'e', 'f']
After splitting [['a', 'b', 'c'], ['d', 'e', 'f']]