Diviser la liste Python en deux

Hemank Mehtani 30 janvier 2023
  1. Utilisez le découpage de liste pour diviser une liste en deux en Python
  2. Utilisez la fonction islice() pour diviser une liste en demi-python
  3. Utilisez la fonction accumulate() pour diviser une liste en deux en Python
Diviser la liste Python en deux

Les listes stockent les éléments à un index particulier et sont modifiables, ce qui signifie que nous pouvons mettre à jour ultérieurement les valeurs d’une liste.

Nous allons apprendre à diviser une liste en deux dans ce tutoriel.

Utilisez le découpage de liste pour diviser une liste en deux en Python

Le découpage de liste saisit une partie spécifique de la liste pour une opération alors que la liste d’origine n’est pas affectée. Cela signifie qu’il crée un duplicata de la liste pour effectuer la tâche assignée. L’opérateur de découpage ([:]) en Python est utilisé pour cela.

Nous avons divisé une liste en deux dans le code suivant.

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

Production:

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

Nous pouvons également créer une fonction pour diviser la liste en deux. Nous utiliserons la fonction len() pour trouver la longueur de la liste. Nous allons réduire cette valeur de moitié et utiliser la méthode de découpage de liste pour la diviser en deux.

Par exemple,

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)

Production:

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

Nous avons créé une fonction split_list qui renvoie deux moitiés d’une liste existante.

Notez qu’il ne modifie pas la liste d’origine, car il crée une liste en double pour effectuer la tâche assignée.

Utilisez la fonction islice() pour diviser une liste en demi-python

En Python, itertools est le module intégré nous permettant de gérer efficacement les itérateurs.

Cela rend l’itération à travers les itérables comme les listes et les chaînes très facile. La fonction islice fait partie du module itertools. Il imprime sélectivement les valeurs mentionnées dans son conteneur itérable passé en argument.

Par exemple,

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)

Production:

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

Utilisez la fonction accumulate() pour diviser une liste en deux en Python

La fonction zip() permet de combiner des éléments d’un itérable. On peut l’utiliser avec la fonction accumulate() du module itertools pour diviser une liste en deux.

Par exemple,

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)

Production:

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