Divida a lista Python pela metade
- Use a divisão de listas para dividir uma lista ao meio em Python
-
Use a função
islice()
para dividir uma lista em meio Python -
Use a função
accumulate()
para dividir uma lista ao meio em Python
As listas armazenam elementos em um índice específico e são mutáveis, o que significa que podemos atualizar posteriormente os valores em uma lista.
Aprenderemos como dividir uma lista pela metade neste tutorial.
Use a divisão de listas para dividir uma lista ao meio em Python
O fatiamento de lista pega uma parte específica da lista para alguma operação, enquanto a lista original permanece inalterada. Isso significa que ele cria uma duplicata da lista para executar a tarefa atribuída. O operador de fatiamento ([:]
) em Python é usado para isso.
Dividimos uma lista pela metade no código a seguir.
lst = ["a", "b", "c", "d", "e", "f"]
print(lst[:3])
print(lst[3:])
Produção:
['a', 'b', 'c']
['d', 'e', 'f']
Também podemos criar uma função para dividir a lista ao meio. Usaremos a função len()
para encontrar o comprimento da lista. Vamos usar a metade desse valor e usar o método de divisão de lista para dividi-lo ao meio.
Por exemplo,
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)
Produção:
['a', 'b', 'c']
['d', 'e', 'f']
Criamos uma função split_list
que retorna duas metades de uma lista existente.
Observe que isso não altera a lista original, pois cria uma lista duplicada para executar a tarefa atribuída.
Use a função islice()
para dividir uma lista em meio Python
Em Python, itertools
é o módulo embutido que nos permite lidar com os iteradores de forma eficiente.
Isso torna a iteração por meio de iteráveis como listas e strings muito fácil. A função islice
faz parte do módulo itertools
. Ele imprime seletivamente os valores mencionados em seu contêiner iterável passado como um argumento.
Por exemplo,
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)
Produção:
Initial list: ['a', 'b', 'c', 'd', 'e', 'f']
After splitting [['a', 'b', 'c'], ['d', 'e', 'f']]
Use a função accumulate()
para dividir uma lista ao meio em Python
A função zip()
é usada para combinar elementos de um iterável. Podemos usá-lo com a função accumulate()
do módulo itertools
para dividir uma lista ao meio.
Por exemplo,
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)
Produção:
Initial list : ['a', 'b', 'c', 'd', 'e', 'f']
After splitting [['a', 'b', 'c'], ['d', 'e', 'f']]