Convertir un objet de tranche en liste de numéros d'index

Lors de la manipulation d'une plage de listes Python

int_list[10:2]

C'est un objet slice qui est en fait passé à la méthode __get__, mais lorsque vous essayez d'implémenter une classe de type liste par vous-même, c'est un problème si vous essayez de correspondre à l'argument slice. Il n'existe aucune méthode pour convertir la tranche en une colonne de numéros d'index.

Il est difficile d'écrire un tel processus de conversion par vous-même, si step est un nombre négatif / None, si start ou stop est un nombre négatif / None, cela mourra dans une tempête de branchement conditionnel.

Cependant, il existe des méthodes qui effectuent ce traitement compliqué de manière discrète. C'est slice.indices (). Si vous donnez la longueur de la liste, cela normalisera le nombre négatif / Aucun à un numéro d'index approprié en conséquence. Avec cela, il est relativement facile d'obtenir une colonne de numéros d'index.

def iterate_by_slice(s: slice, length: int):
    i, stop, step = s.indices(length)
    if step > 0 :
        while i < stop:
            yield i
            i += step
    else:
        while i > stop:
            yield i
            i += step

Veuillez créer de plus en plus de classes de type liste utiles à tout le monde.

Recommended Posts

Convertir un objet de tranche en liste de numéros d'index
[Python] Comment convertir une liste bidimensionnelle en liste unidimensionnelle
J'ai essayé de créer une liste de nombres premiers avec python
Conversion de chaîne d'une liste contenant des nombres
Afficher la sortie d'une liste de nombres à virgule flottante
Convertir une liste multidimensionnelle (tableau) en une dimension
Comment convertir un objet de classe en dictionnaire avec SQLAlchemy
Comment écrire un type liste / dictionnaire de Python3
Python: obtenir une liste de méthodes pour un objet
[Python] Convertir la liste en Pandas [Pandas]
[Python] Comment créer une liste de chaînes de caractères caractère par caractère
Comment mélanger une partie de la liste Python (au hasard.shuffle)
[Commande] Commande pour obtenir une liste de fichiers contenant des caractères pleine largeur
Comment afficher une liste des versions installables avec pyenv
Comment obtenir une liste d'exceptions intégrées pour python
Comment obtenir une liste de liens à partir d'une page de wikipedia
Y a-t-il un secret dans la fréquence des nombres de rapport de circonférence?
Comment connecter le contenu de la liste dans une chaîne de caractères
Obtenir la valeur d'une clé spécifique jusqu'à l'index spécifié de la liste de dictionnaires en Python
Convertir l'objet Statut Tweepy en JSON
Extraire l'index de la set list d'origine correspondant à la liste des sous-ensembles.
J'ai essayé d'obtenir l'index de la liste en utilisant la fonction énumérer
Convertir un PDF A4 en A3 toutes les 2 pages
Essayez d'obtenir la liste des fils du bulletin d'information (je n'aime pas) avec Python.
Convertir la liste en DataFrame avec python
Convertir le PDF de la liste des concessionnaires de la campagne Go To Eat Hokkaido en CSV
Python> liste> Convertir une double liste en une seule liste
Convertissez un grand nombre de fichiers PDF en fichiers texte à l'aide de pdfminer
J'ai essayé d'obtenir une liste de noms AMI en utilisant Boto3
Convertir une chaîne en image
[Python] Convertit les nombres naturels en nombres ordinaux
Comment obtenir une liste excluant les éléments dont l'index est i ...?
Une introduction légère à la détection d'objets
Convertir décimal en n-aire [python]
Outil pour convertir la configuration Juniper
Générer une liste de caractères consécutifs
[Python] Un programme qui fait pivoter le contenu de la liste vers la gauche
J'ai essayé de créer un programme qui convertit les nombres hexadécimaux en nombres décimaux avec python
[Python] Comment mettre n'importe quel nombre d'entrées standard dans la liste
[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste
[Linux] Une commande pour obtenir une liste des commandes exécutées dans le passé
Une fonction qui génère une liste avec des éléments jusqu'à 3 chiffres
J'ai mesuré 6 méthodes pour obtenir l'indice de la valeur maximale (valeur minimale) de la liste
Je souhaite trier une liste dans l'ordre des autres listes
Convertir le PDF de la liste des magasins membres Go To EAT dans la préfecture de Kumamoto en CSV
Comment bien formater une liste de dictionnaires (ou d'instances) en Python
[Django] Convertir l'ensemble de requêtes en liste de types de dict
Faisons un noyau jupyter
Afficher une liste d'alphabets en Python 3
python> Convertir le tuple en liste> aList = list (pi_tuple)
[python] Obtenir une liste de variables d'instance
Résumé de l'utilisation de la liste Python
[Python] Obtenir une liste de dossiers uniquement
Une introduction à l'orientation des objets - Donnez à un objet un enfant.
Convertir le PDF de la préfecture de Chiba Aller à la liste des magasins des membres EAT en CSV (commande)
Comment passer le résultat de l'exécution d'une commande shell dans une liste en Python
Convertir le PDF de la liste de produits contenant des surfactants efficaces pour le nouveau virus corona en CSV
Comment réaliser quelque chose comme une liste de void * (ou de type de variante) dans Go?
[Python] Combiner des listes contenant des nombres en chaînes et les écrire dans un fichier de sortie
Convertir le PDF de la liste des magasins membres Go To EAT dans la préfecture de Niigata en CSV
Je souhaite voir une liste de fichiers WebDAV dans le module Requêtes