Comment utiliser le module Bisect dans Python

Comment utiliser le module Bisect dans Python
Cet article couvrira un guide sur l'utilisation du module «BISECT» disponible dans les bibliothèques intégrées Python standard. Le module BISECT peut être utilisé pour exécuter une variété d'opérations sur des objets ITERAY TYPE LIST disponibles dans Python. Tous les échantillons de code de cet article sont testés avec Python 3.9.5 sur Ubuntu 21.04.

À propos du module BISECT

Le module BISECT vous permet d'appeler diverses méthodes sur une liste Python et vous aide à garder la liste triée. Il est particulièrement utile si vous souhaitez modifier les éléments d'une liste mais en même temps garder sa commande. Par exemple, si vous souhaitez insérer un élément dans une liste, la méthode BISECT renverra un index où un nouvel élément peut être inséré de telle manière qu'après l'insertion, la liste restera triée. La syntaxe pour les méthodes de bissect peut être mieux comprise à travers des exemples, certains d'entre eux sont couverts ci-dessous:

Insertion d'un élément dans une liste en utilisant la méthode BISECT

Jetez un œil à l'échantillon de code ci-dessous:

Importer une bissecte
l = [2, 1, 3, 5]
l.trier()
i = bisect.BISECT (L, 4)
Imprimer (i)
l.insérer (i, 4)
Imprimer (L)

La première instruction importe le module «Bisect». Suivant un objet de type liste «l» est défini. Dans l'instruction suivante, la liste est triée en appelant la méthode de «tri» dessus. La méthode BISECT est appelée sur la liste sur la ligne suivante. La méthode BISECT prend deux arguments, la liste qu'il veut bissection et l'élément qui doit être inséré dans la liste tout en gardant l'ordre de tri. Dans ce cas, la méthode BISECT est appelée à déterminer à quel numéro d'index «4» doit être inséré dans la liste «L» afin que tout soit conservé dans l'ordre après insertion. La variable «i» conserve les valeurs de l'indice renvoyé par la méthode BISECT. Enfin, le numéro 4 est inséré dans la liste «L» à l'index «i» en appelant la méthode «insertion» sur la liste.

Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

3
[1, 2, 3, 4, 5]

Le numéro «3» est l'index dans la liste originale où le numéro 4 a été inséré. Les index de la liste commencent toujours par zéro, donc le numéro 4 a été inséré en 4e position.

Notez que si un nombre existe déjà dans la liste, la méthode Bisect trouve un index à droite du numéro existant. Jetez un œil à l'échantillon de code ci-dessous:

Importer une bissecte
l = [2, 1, 3, 5, 4]
l.trier()
i = bisect.BISECT (L, 4)
Imprimer (i)
l.insérer (i, 4)
Imprimer (L)

Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

4
[1, 2, 3, 4, 4, 5]

Le module BISECT comprend une autre méthode appelée «bisect_right» qui est identique à la méthode «BISECT». Vous pouvez utiliser ces méthodes interchangeables.

Insertion d'un élément dans une liste à partir de gauche en utilisant la méthode BISECT

Considérez l'exemple de code ci-dessous:

Importer une bissecte
l = [2, 1, 3, 5, 4, 4]
l.trier()
i = bisect.bisect_left (l, 4)
Imprimer (i)
l.insérer (i, 4)
Imprimer (L)

C'est presque la même chose que l'exemple précédent, sauf qu'au lieu de la méthode BISECT, «Bisect_left» est maintenant utilisée. Dans le cas d'un élément existant, la méthode Bisect_left trouve l'index le plus à gauche. Vous pouvez utiliser cet index pour ajouter un nouvel élément à gauche d'un élément correspondant.

Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

3
[1, 2, 3, 4, 4, 4, 5]

Le numéro 4 est ajouté à l'index 3, c'est-à-dire en 4e position dans la liste puisque l'index commence toujours par zéro. Si vous utilisez à la place la méthode BISECT ou BISECT_RIGHT, l'index renvoyé sera différent. Jetez un œil à l'échantillon de code ci-dessous:

Importer une bissecte
l = [2, 1, 3, 5, 4, 4]
l.trier()
i = bisect.bisect_right (l, 4)
Imprimer (i)
l.insérer (i, 4)
Imprimer (L)

Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

5
[1, 2, 3, 4, 4, 4, 5]

Utilisation de la méthode INSORT

Le module BISECT fournit également des méthodes «insortes» et «insor_left» qui peuvent être utilisées pour insérer directement les éléments dans une liste à des positions appropriées. Vous pouvez également utiliser la méthode «Insort_Right» à la place de la méthode ISNORT. Jetez un œil à l'échantillon de code ci-dessous:

Importer une bissecte
l = [2, 1, 3, 5, 4, 4]
l.trier()
couper en deux.insorte (l, 4)
Imprimer (L)

L'échantillon de code est très similaire aux exemples antérieurs. La méthode Insort prend deux arguments: la liste à modifier et l'élément à insérer à la position appropriée. Il n'est pas nécessaire de faire appel à la méthode «insérer» sur la liste pour insérer manuellement l'élément de la liste à l'index correspondant.

Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

[1, 2, 3, 4, 4, 4, 5]

La méthode Insort n'est qu'une méthode de commodité qui équivaut à l'instruction Python suivante (en supposant que «L» est une liste triée):

l.insérer (bissection.BISECT (L, 4), 4)

Donc, sous le capot, Insort suit les mêmes règles que les méthodes BISECT, BISECT_RIGHT et BISECT_LEFT.

Conclusion

Comme le module BISECT fournit des méthodes pour modifier une liste en y insérant des éléments tout en gardant l'ordre de tri, beaucoup de code répétitif est supprimé où vous devrez peut-être trier constamment une liste après avoir apporté des modifications. Selon les documents Python officiels, la méthode BISECT fournit des améliorations par rapport aux autres approches couramment utilisées, en particulier lorsqu'une liste a un grand nombre d'éléments.