Une histoire rafraîchissante sur Slice en Python

Inconfort lors du traitement des tranches

C'est ce qui précède: Une histoire sur Slice en Python

Peut-être que la plupart des programmeurs ont l'idée de spécifier Index comme indice lorsqu'ils veulent extraire un élément d'un tableau.

        +++++++++++++++++++++++++++++++++++++
element + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 
        +++++++++++++++++++++++++++++++++++++
index   + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 +

Si vous souhaitez extraire le 7ème élément d'un tableau, peu de programmeurs trouveront étrange d'obtenir le code et les résultats suivants.

l=[1,2,3,4,5,6,7,8,9]
print(l[6])
7

Par conséquent, même lors de l'exécution d'une opération de tranche sur un tableau, il essaie naturellement de spécifier la plage avec Index.

l=[1,2,3,4,5,6,7,8,9]
print(l[6:7])
[7]

oh ... j'avais l'intention de spécifier l'index 6-7, donc le résultat attendu est

[7,8]

Cependant, la réalité était impitoyable.

La vraie nature du sentiment d'incongruité

En conclusion, c'était Length, et non Index, qui devrait être un indice de tableau dans le traitement des tranches.

        +++++++++++++++++++++++++++++++++++++
element + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 
        +++++++++++++++++++++++++++++++++++++
length  0___1___2___3___4___5___6___7___8___9
l=[1,2,3,4,5,6,7,8,9]
print(l[6:7])
[7]

Si vous comparez le tableau des longueurs et le processus et que vous le remplacez dans votre cerveau en indiquant que l'indice est Longueur au lieu d'Index, ce sera le processus d'acquérir l'élément entre les longueurs 6 à 7, il n'y aura donc pas d'inconfort dans le résultat de sortie. C'était rafraîchissant.

Mais pourquoi Longueur?

Je ne sais pas. Le processus de spécification de la longueur et d'acquisition de la plage de l'index comme la fonction de plage est certainement intuitif et pratique, mais même ainsi, le standard d'index est tellement que la notation en indice basée sur la longueur est mélangée même pour l'indice du tableau grand public. Je ne savais pas quelle était la grande raison.

En fait, il est facile de comprendre (?) L'opération d'arrangement en utilisant la longueur

J'étais négatif à propos de l'utilisation de Length comme indice pour un tableau ci-dessus, mais en fait, tout le monde aurait dû essayer d'utiliser Length comme indice (probablement), je le fais.

Quand j'étais petit, j'ai frappé une nouvelle année et j'ai acheté Delphi 2.0 et le premier livre de référence de type Delphi dans mon quartier Laox (je ne sais pas pourquoi j'ai choisi Delphi, c'est probablement le langage de programmation GUI le moins cher. C'est pourquoi), quand j'ai commencé à étudier le programme avec triomphe. En regardant l'exemple de livre de référence, j'ai écrit le code, répété des erreurs et des corrections, et me suis approché de la page du tableau.

Référence "Pour obtenir le premier élément du tableau, spécifiez 0 comme indice." Je "Pourquoi?"

À ce moment-là, personne autour de moi ne pouvait répondre à cette question, et je l'ai imprimée à contrecœur dans ma conscience comme une malédiction, 0 quand je voulais prendre le premier élément et 1 quand je voulais prendre l'élément suivant.

Donc, si vous ne connaissez pas du tout la programmation, vous pouvez accepter l'inconfort que j'ai eu cette fois sans même ressentir d'inconfort en premier lieu. Si un langage est devenu courant dans lequel toutes les opérations de tableau ont été effectuées sur une base de longueur,

Référence "Pour obtenir le premier élément du tableau, spécifiez 1 comme indice." Je "je vois"

Il peut y avoir un tel monde.

alors

En conclusion, je ne comprends pas, mais je le comprends, ce n'était pas très rafraîchissant.

Cependant, même s'il devient courant dans le monde d'effectuer des opérations de tableau basées sur la longueur, ce sera un problème, et j'espère que les indices des tableaux continueront à être unifiés autant que possible sur Index. Je vais y mettre fin.

Recommended Posts

Une histoire rafraîchissante sur Slice en Python
Une histoire de mauvaise humeur sur Slice en Python
L'histoire de l'utilisation de la réduction de Python
Une histoire sur un remodelage magique qui met Lubuntu dans un Chromebook
Une histoire sur l'apprentissage automatique avec Kyasuket
Une histoire sur Python pop and append
Une histoire sur l'exploitation d'une instance GCP à partir de Discord
Une histoire accro aux variables globales et à la portée de Go
L'histoire de vouloir afficher des annonces liées à des articles sur Jubatus
Une histoire sur l'implémentation d'un écran de connexion avec django
Une histoire sur l'exécution de Python sur PHP sur Heroku
Une histoire sur la modification de Python et l'ajout de fonctions
Histoire de l'analyse de données par apprentissage automatique
Échapper à l'environnement virtuel de Python ~ Une histoire sur le fait d'être piégé dans un environnement virtuel que j'ai créé ~
Une histoire de prédiction du taux de change avec Deep Learning
L'histoire de la migration de l'intégralité du disque Linux via SSH
Un mémorandum sur Nan.
L'histoire de la création d'une partition de type Hanon avec Python
Une histoire d'essayer un monorepo (Golang +) Python avec Bazel
Histoire autour de la maternelle, de l'école maternelle, du jardin d'enfants
Une histoire qui reflète l'activité Discord dans Slack Status
Une note sur __call__
Une histoire sur la difficulté à traiter en boucle 3 millions de données d'identification
L'histoire de la gestion de theano avec TSUBAME 2.0
Une note sur le sous-processus
Une histoire sur le changement du nom principal de BlueZ
Une note sur mprotect (2)
Une histoire sur un débutant Linux passant LPIC101 en une semaine
Une histoire sur un débutant Linux mettant Linux sur une tablette Windows
Une histoire de trébucher sur PATH après l'installation d'anaconda
Une histoire sur la création d'un système d'exploitation compatible UNIX / Linux à partir de zéro
Une histoire sur la façon de spécifier un chemin relatif en python.
Une histoire de compétition avec un ami dans Othello AI Preparation
Une histoire sur l'installation de matplotlib à l'aide de pip avec une erreur
Une histoire un peu plus profonde sur la blockchain, le monde numérique
Une histoire sur un amateur faisant une rupture de bloc avec python (kivy) ②
Une histoire sur la façon de traiter le problème CORS
Une histoire sur un amateur faisant une rupture de bloc avec python (kivy) ①
Une histoire sur une guerre lorsque deux nouveaux arrivants ont développé une application
Une histoire sur la création d'une courte chanson par hasard avec Sudachi Py
Une histoire de regroupement de données de séries chronologiques d'échange
L'histoire d'un ingénieur directeur de 40 ans qui réussit "Deep Learning for ENGINEER"
Une histoire sur la tentative d'implémentation de variables privées en Python.
Une histoire sur une tragédie qui se passe en échangeant des commandes dans le chat
Une histoire sur un débutant de GCP essayant de créer un serveur Micra avec GCE
Une histoire à propos d'un débutant en python coincé avec aucun module nommé'ttp.server '
Une note sur KornShell (ksh)
Mémorandum sur la corrélation [Python]
Une note sur TensorFlow Introduction
Un mémorandum sur le simulacre de Python
Un peu plus sur le FIFO
Une note sur [python] __debug__
Une histoire d'essayer d'automatiser un chot lorsque vous cuisinez vous-même
Une histoire sur l'ajout d'une API REST à un démon créé avec Python
Une histoire sur une erreur de construction dans une bibliothèque partagée qui fait référence à libusb
L'histoire de la mise en place de Chrome OS (et non de Chrome) dans Surface GO
Une histoire sur le développement d'un type logiciel avec Firestore + Python + OpenAPI + Typescript
Une histoire sur la tentative d'exécuter plusieurs versions de Python (édition Mac)