Comments on: Les vues sur des collections en Python http://sametmax.com/les-vues-sur-des-collections-en-python/ Du code, du cul Mon, 28 Oct 2019 11:54:55 +0000 hourly 1 https://wordpress.org/?v=4.9.7 By: Sam http://sametmax.com/les-vues-sur-des-collections-en-python/#comment-2866 Mon, 05 Nov 2012 21:55:30 +0000 http://sametmax.com/?p=2785#comment-2866 @OPI: http://sametmax.com/dois-je-apprendre-python-2-ou-python-3/

Et comme print() ne suffit pas pour passer à Python 3 (toute la gestion des strings est à changer, les imports changent, etc), tout le blog est en 2.7 et le restera encore au moins un an.

]]>
By: OPi http://sametmax.com/les-vues-sur-des-collections-en-python/#comment-2865 Mon, 05 Nov 2012 21:16:51 +0000 http://sametmax.com/?p=2785#comment-2865 Intéressant ces articles sur Python.

Petit conseil, moi j’utiliserais la notation
print(val)
plutôt que
print val
afin que les codes tournent aussi sous Python 3.

]]>
By: Sam http://sametmax.com/les-vues-sur-des-collections-en-python/#comment-2864 Mon, 05 Nov 2012 20:49:52 +0000 http://sametmax.com/?p=2785#comment-2864 Ca concerne aussi la branche 3. Il n’y pas vraiment tant de différence que ça entre la branche 2 et 3 concernant les strings. Le principal est de se souvenir que les notations littérales ont été échangé:

– En python 2.7: “string” créé un bytestring, et u”string” créé une chaîne unicode.
– En python 3: “string” créé une chaîne unicode, et b”string” créé un bytestring.

Mais la problématique reste la même.

]]>
By: Kontre http://sametmax.com/les-vues-sur-des-collections-en-python/#comment-2863 Mon, 05 Nov 2012 20:41:43 +0000 http://sametmax.com/?p=2785#comment-2863 La toute dernière remarque sur l’unicode, ça ne concerne que python 2.7 ou la branche 3 aussi (puisque les chaînes sont en unicode) ?

]]>
By: Sam http://sametmax.com/les-vues-sur-des-collections-en-python/#comment-2862 Mon, 05 Nov 2012 18:16:54 +0000 http://sametmax.com/?p=2785#comment-2862 Bonne idée. “Valeurs et référence en Python”. Je note.

]]>
By: Etienne http://sametmax.com/les-vues-sur-des-collections-en-python/#comment-2856 Mon, 05 Nov 2012 14:18:02 +0000 http://sametmax.com/?p=2785#comment-2856 Une idée de post, en passant: la question de la copie des objets mutables et donc la question des variables (référence, valeur) en python (je me suis fait avoir avec un dictionnaire hier, j’avais pas réalisé que c’est un mutable).

Quand j’ai cherché la première fois, je suis tombé sur des trucs du genre: “quand tu copie une liste tu dois faire b = a[:], sinon ça marche pas”. Faut reconnaître que c’est un peu maigre…

]]>
By: Etienne http://sametmax.com/les-vues-sur-des-collections-en-python/#comment-2855 Mon, 05 Nov 2012 13:57:16 +0000 http://sametmax.com/?p=2785#comment-2855 Tout ça est parfaitement clair je trouve. Les mystères des proxys ont été dévoilés, et la différence entre un générateur et une vue devient tout à fait claire, même sans savoir ce qu’est exactement une “structure de données” (je vais lire ton post de ce pas).

Merci Max!

]]>
By: Sam http://sametmax.com/les-vues-sur-des-collections-en-python/#comment-2849 Mon, 05 Nov 2012 02:04:36 +0000 http://sametmax.com/?p=2785#comment-2849 @JeromeJ: l’assignation modifie, mais la modification n’est pas forcément une modification. Par exemple .clear() d’un dicto modifie le dictionnaire, mais ça n’a rien d’une assignation.

Ensuite, un itérable est tout type sur lequel on peut itérer. Un tuple, un fichier, une liste ou un générateur sont des itérables. On reconnait un itérable au fait qu’on peut lui appliquer une boucle for.

Ainsi, la vue est un itérable: on peut itérer dessus. Il ne faut pas la comparer à un tuple car un tuple prend autant de place en mémoire qu’il y a d’élement, ce n’est pas le cas d’une vue.

Un itérateur est un générateur qui itère sur un itérable. Lui n’est lisible qu’une fois.

Cette subtilité itérable/itérateur se retrouve en anlais: iterable (qui correspond à une caracteristique, celle d’être parcourable un élément à la fois) est différent d’iterator (qui correspond à une nature, celle d’être un parcoureur d’itérable).

On obtient un itérateur en faisant iter() sur un itérable:

iterateur = iter([1, 2, 3)
iterateur.next()
1

Je devrais ptêt mettre ça dans un article.

]]>
By: JeromeJ http://sametmax.com/les-vues-sur-des-collections-en-python/#comment-2845 Mon, 05 Nov 2012 00:06:00 +0000 http://sametmax.com/?p=2785#comment-2845 Petite redondance ici :p “Contrairement à une liste, les vues issues d’un dictionnaire ne supportent pas le slicing ou l’assignation et il n’y a aucune garantie d’ordre des éléments. De plus, elles ne peuvent être modifiées.” L’assignation et la modification c’est pas la même chose ? ^^

“[…] sous une forme différente: ici un itérable.”
Ça ne serait pas mieux de comparer ça à un tuple ? On peut l’itérer plusieurs fois mais on ne peut le modifier (car l’itérable est à usage unique non ?)

Merci, c’est globalement plus claire (pour moi en tout cas) :)

]]>
By: Sam http://sametmax.com/les-vues-sur-des-collections-en-python/#comment-2844 Sun, 04 Nov 2012 22:45:24 +0000 http://sametmax.com/?p=2785#comment-2844 J’ai fais quelques modifs, avec notament une explication courte sur le terme ‘proxy’ et un article qui explique ce qu’est une structure de données.

Faites moi un feeback sur ce qui est mieux, et ce qui pourrait être plus clair. On va y arriver par itération :-)

]]>