Comments on: En Python 3, le type bytes est un array d’entiers http://sametmax.com/en-python-3-le-type-bytes-est-un-array-dentiers/ Deux développeurs en vadrouille qui se sortent les doigts du code Wed, 05 Feb 2014 12:15:31 +0000 hourly 1 http://wordpress.org/?v=3.3.1 By: Sam http://sametmax.com/en-python-3-le-type-bytes-est-un-array-dentiers/#comment-16725 Sam Fri, 06 Dec 2013 20:04:36 +0000 http://sametmax.com/?p=8160#comment-16725 @herison : array, c'est un module qui permet la création d'arrays contenant des types différents en Python. Arrays de float, de chars, de long, etc. Effectivement, on peut imaginer une liste chaînée, sauf que les structures de données Python sont toutes de haut niveau. Même les arrays du module array sont pas de simples arrays. Typiquement, une liste permet une collection d'objet hétérogènes. De plus, récupérer sa taille est une opération O(1) (https://wiki.python.org/moin/TimeComplexity). Donc les listes ne sont pas juste des arrays, il y a une couche par dessus. Bref, l'auteur veut juste à tout prix faire son kéké devant ses élèves. J'ai horreur de ces profs. @herison : array, c’est un module qui permet la création d’arrays contenant des types différents en Python. Arrays de float, de chars, de long, etc.

Effectivement, on peut imaginer une liste chaînée, sauf que les structures de données Python sont toutes de haut niveau. Même les arrays du module array sont pas de simples arrays.

Typiquement, une liste permet une collection d’objet hétérogènes. De plus, récupérer sa taille est une opération O(1) (https://wiki.python.org/moin/TimeComplexity). Donc les listes ne sont pas juste des arrays, il y a une couche par dessus.

Bref, l’auteur veut juste à tout prix faire son kéké devant ses élèves. J’ai horreur de ces profs.

]]>
By: Pi.0 http://sametmax.com/en-python-3-le-type-bytes-est-un-array-dentiers/#comment-16721 Pi.0 Fri, 06 Dec 2013 18:19:04 +0000 http://sametmax.com/?p=8160#comment-16721 Ça me fait penser quand j'avais du apprendre le pascal et qu'il fallait mettre deux index dans l'array Ça me fait penser quand j’avais du apprendre le pascal et qu’il fallait mettre deux index dans l’array

]]>
By: herison http://sametmax.com/en-python-3-le-type-bytes-est-un-array-dentiers/#comment-16700 herison Fri, 06 Dec 2013 14:26:35 +0000 http://sametmax.com/?p=8160#comment-16700 Et le >>> import array dans tout ça ? Sinon pour les listes et les array si pour listes on pense à une implémentation par des listes chaînées Pour un tableau, l'accès au énième élément est directe pour une liste, il faut parcourir tout les éléments. Ca change des choses pour l'ajout et la suppression si l'élément est en plein milieu ou aux extrémités. En python pour avoir une liste (doublement) chainée il faut un collections.deque Merci pour ce site, c'est vraiment sympa. Et le
>>> import array

dans tout ça ?

Sinon pour les listes et les array si pour listes on pense à une implémentation par des listes chaînées

Pour un tableau, l’accès au énième élément est directe pour une liste, il faut parcourir tout les éléments. Ca change des choses pour l’ajout et la suppression si l’élément est en plein milieu ou aux extrémités.

En python pour avoir une liste (doublement) chainée il faut un collections.deque

Merci pour ce site, c’est vraiment sympa.

]]>
By: kontre http://sametmax.com/en-python-3-le-type-bytes-est-un-array-dentiers/#comment-16699 kontre Fri, 06 Dec 2013 14:20:55 +0000 http://sametmax.com/?p=8160#comment-16699 @Sam: Le calcul numérique se fait en effet avec des arrays (c'est énormément plus rapide et plus efficace en mémoire), mais je ne pense pas que beaucoup de scientifiques utilisent des bytearray ou des bytes directement. Numpy a sa propre implémentation, qui a une API encore plus riche. Je sais que les données brutes sont stockées dans ce qu'ils appellent un buffer, mais je ne sais pas si ce buffer en question est un bytearray python. @Sam: Le calcul numérique se fait en effet avec des arrays (c’est énormément plus rapide et plus efficace en mémoire), mais je ne pense pas que beaucoup de scientifiques utilisent des bytearray ou des bytes directement. Numpy a sa propre implémentation, qui a une API encore plus riche. Je sais que les données brutes sont stockées dans ce qu’ils appellent un buffer, mais je ne sais pas si ce buffer en question est un bytearray python.

]]>
By: Sam http://sametmax.com/en-python-3-le-type-bytes-est-un-array-dentiers/#comment-16686 Sam Fri, 06 Dec 2013 11:49:54 +0000 http://sametmax.com/?p=8160#comment-16686 Une liste est juste un type d'array Un array est une structure de données de bas niveau. La distance entre deux adresses de deux éléments voisins est constante dans tout l'array (généralement tous les éléments on le même type pour qu'ils prennent la même place). Une liste est une séquence d'élément finie. On voit bien que l'array est une question d'implémentation, la liste est une question de sémantique. Maintenant, le point de l'auteur de l'article cité est biaisé, car il ne dit pas si il définit la liste du point de vue de l'implémentation (ni de laquelle), de l'API ou du concept sémantique. A la fin il conclut de manière prétentieuse : <blockquote>At this point, the student attains enlightment and starts applying for jobs in industry.</blockquote> Personnellement, un mec comme ça, je le vire. Il a visiblement plus de connaissance du monde papier que du code réel. En php par exemple, le type Array ne représente pas du tout l'implémentation d'un array. Terme mal choisi ? Sans aucun doute. Raison d'écrire un article de 100 lignes et de faire chier ses élèves avec. Err... Au final, on s'en branle. En Python, on appelle "liste" le type de base qui regrouper et parcourir un ensemble ordonné d'éléments dont la taille n'est pas connue par avance mais qui est finie. bytearray et bytes sont bien des arrays par contre en Python, dans leurs implémentations et leurs api, bien que l'API soit plus riche que celle d'un array basique. Mais encore une fois, tu ne manipuleras presque jamais un array en Python. Seuls les programmeurs scientifiques ou de libs le feront. Dans la programmation de tous les jours, on utilise des listes, et c'est tout. Une liste est juste un type d’array

Un array est une structure de données de bas niveau. La distance entre deux adresses de deux éléments voisins est constante dans tout l’array (généralement tous les éléments on le même type pour qu’ils prennent la même place).

Une liste est une séquence d’élément finie.

On voit bien que l’array est une question d’implémentation, la liste est une question de sémantique.

Maintenant, le point de l’auteur de l’article cité est biaisé, car il ne dit pas si il définit la liste du point de vue de l’implémentation (ni de laquelle), de l’API ou du concept sémantique.

A la fin il conclut de manière prétentieuse :

At this point, the student attains enlightment and starts applying for jobs in industry.

Personnellement, un mec comme ça, je le vire.

Il a visiblement plus de connaissance du monde papier que du code réel.

En php par exemple, le type Array ne représente pas du tout l’implémentation d’un array. Terme mal choisi ? Sans aucun doute. Raison d’écrire un article de 100 lignes et de faire chier ses élèves avec. Err…

Au final, on s’en branle. En Python, on appelle “liste” le type de base qui regrouper et parcourir un ensemble ordonné d’éléments dont la taille n’est pas connue par avance mais qui est finie.

bytearray et bytes sont bien des arrays par contre en Python, dans leurs implémentations et leurs api, bien que l’API soit plus riche que celle d’un array basique. Mais encore une fois, tu ne manipuleras presque jamais un array en Python. Seuls les programmeurs scientifiques ou de libs le feront. Dans la programmation de tous les jours, on utilise des listes, et c’est tout.

]]>
By: Krypted http://sametmax.com/en-python-3-le-type-bytes-est-un-array-dentiers/#comment-16684 Krypted Fri, 06 Dec 2013 11:03:25 +0000 http://sametmax.com/?p=8160#comment-16684 D'ailleurs je viens de tomber sur <a href="http://metarabbit.wordpress.com/2013/12/03/python-lists-are-not-lists-a-history/" rel="nofollow">cet article </a>: J'avoue que je n'y ai pas compris grand chose. Quelle est la différence entre une liste et un array? Je crois qu'en Java une liste est un type particulier d'array, mais j'ai dû mal à saisir ce que les listes ont en plus. D’ailleurs je viens de tomber sur cet article :

J’avoue que je n’y ai pas compris grand chose. Quelle est la différence entre une liste et un array?

Je crois qu’en Java une liste est un type particulier d’array, mais j’ai dû mal à saisir ce que les listes ont en plus.

]]>
By: Sam http://sametmax.com/en-python-3-le-type-bytes-est-un-array-dentiers/#comment-16682 Sam Fri, 06 Dec 2013 10:23:20 +0000 http://sametmax.com/?p=8160#comment-16682 Type byte toi moi-même. Type byte toi moi-même.

]]>
By: Greizgh http://sametmax.com/en-python-3-le-type-bytes-est-un-array-dentiers/#comment-16681 Greizgh Fri, 06 Dec 2013 10:17:01 +0000 http://sametmax.com/?p=8160#comment-16681 Merci de mettre en lumière les types bytes. Et sinon: s/pour obtenir de un array de octets./pour obtenir un array d'octets. Merci de mettre en lumière les types bytes.
Et sinon: s/pour obtenir de un array de octets./pour obtenir un array d’octets.

]]>
By: Sam http://sametmax.com/en-python-3-le-type-bytes-est-un-array-dentiers/#comment-16679 Sam Fri, 06 Dec 2013 08:37:32 +0000 http://sametmax.com/?p=8160#comment-16679 Indeed. Je corrige ça. Indeed. Je corrige ça.

]]>
By: Recher http://sametmax.com/en-python-3-le-type-bytes-est-un-array-dentiers/#comment-16677 Recher Fri, 06 Dec 2013 08:18:12 +0000 http://sametmax.com/?p=8160#comment-16677 Ah, téléscopage de commentaire avec Kontre. C'est beau la concomitance, des fois. Ah, téléscopage de commentaire avec Kontre. C’est beau la concomitance, des fois.

]]>