[IPython-dev] Incompatible change discussion: Pretty printing of ordered dict.

Pietro Terna pietro.terna at unito.it
Fri Aug 4 16:48:31 EDT 2017


     Dear all,

     just to understand ...

     Why in Idle the result is different?

Python 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "copyright", "credits" or "license()" for more information.
 >>> d = {'c':3,'b':2,'a':1}
 >>> d
{'c': 3, 'b': 2, 'a': 1}
 >>>

     Best, Pietro

Il 04/08/17 20:23, Yarko Tymciurak ha scritto:
> In [16]: d = {'c':3,'b':2,'a':1}
>
> In [17]: d
> Out[17]: {'a': 1, 'b': 2, 'c': 3}
>
> In [18]: repr(d)
> Out[18]: "{'c': 3, 'b': 2, 'a': 1}"
>
> In [19]: import pprint
>
> In [20]: pprint.pprint(d)
> {'a': 1, 'b': 2, 'c': 3}
>
> In [21]: print(d)
> {'c': 3, 'b': 2, 'a': 1}
>
> In [22]: print(pprint.pformat(d))
> {'a': 1, 'b': 2, 'c': 3}
>
>
> On Fri, Aug 4, 2017 at 10:21 AM, Steve Holden <steve at holdenweb.com 
> <mailto:steve at holdenweb.com>> wrote:
>
>     It's always difficult to change a long-established behaviour. I'd
>     prefer that dict  printing stayed as it is - I haven't seen many
>     complaints so far, and as has been pointed out the key ordering is
>     available if required.  S
>
>     Sent from my iPhone
>
>     On 4 Aug 2017, at 15:36, Wes Turner <wes.turner at gmail.com
>     <mailto:wes.turner at gmail.com>> wrote:
>
>>     ```python
>>     repr(dict)
>>
>>     import pprint
>>     pprint.pprint(dict)
>>     print(pprint.pformat(dict)
>>     ```
>>
>>     On Friday, August 4, 2017, MinRK <benjaminrk at gmail.com
>>     <mailto:benjaminrk at gmail.com>> wrote:
>>
>>         I'm pretty strongly in favor of keeping the sorting in our
>>         default pretty-printing. It's extremely valuable for
>>         interacting with dictionaries to have consistent, predictable
>>         display. There are plenty of ways to illustrate dict
>>         ordering, such as by iterating through the dict , e.g.
>>         `list(dict)`.
>>
>>         -Min
>>
>>         On Thu, Aug 3, 2017 at 6:38 PM, Carl Smith
>>         <carl.input at gmail.com> wrote:
>>
>>             I'm with Thomas.
>>
>>
>>             On Wed, 2 Aug 2017 22:30 Wes Turner,
>>             <wes.turner at gmail.com> wrote:
>>
>>                 Maybe a SORT_DICT_KEYS bool configuration setting?
>>                 Really practically only in order to teach:
>>
>>                 - dict
>>                   -
>>                 https://docs.python.org/3/tutorial/datastructures.html#dictionaries
>>                 <https://docs.python.org/3/tutorial/datastructures.html#dictionaries>
>>                 - PYTHONHASHSEED / -R
>>                 -
>>                 https://docs.python.org/3/using/cmdline.html#envvar-PYTHONHASHSEED
>>                 <https://docs.python.org/3/using/cmdline.html#envvar-PYTHONHASHSEED>
>>                   -
>>                 https://docs.python.org/3/using/cmdline.html#cmdoption-R
>>                 <https://docs.python.org/3/using/cmdline.html#cmdoption-R>
>>                 - collections.OrderedDict (is backwards compatible)
>>                 -
>>                 https://docs.python.org/3/library/collections.html#ordereddict-objects
>>                 <https://docs.python.org/3/library/collections.html#ordereddict-objects>
>>
>>
>>
>>                 On Wednesday, August 2, 2017, Matthias Bussonnier
>>                 <bussonniermatthias at gmail.com> wrote:
>>
>>                     Hi all,
>>
>>                     As you may or may not be aware, with Python 3.6
>>                     the dictionary are
>>                     ordered by default. It is technically an
>>                     implementation detail, though
>>                     some people would love for it not to.
>>
>>                     Regardless, IPython has for a long time
>>                     pretty-printed the dictionary
>>                     with _sorted_ keys, this thus prevent to teach
>>                     python and show that
>>                     dictionaries maintain order. Thus there is the
>>                     question of wether we
>>                     should disable sorting keys while pretty-printing.
>>
>>                     https://github.com/ipython/ipython/issues/10110
>>                     <https://github.com/ipython/ipython/issues/10110>
>>
>>                     This seem like a minor change, but I'd like to
>>                     know if some of you are
>>                     _relying_ on the ordering of dict when they are
>>                     printed, or have
>>                     compelling arguments against (or for) removing
>>                     sorting of the keys
>>                     before pretty_printing.
>>
>>                     If you care about the above subject, please have
>>                     your voice heard in
>>                     above issue.
>>
>>                     Thanks,
>>                     --
>>                     Matthias
>>                     _______________________________________________
>>                     IPython-dev mailing list
>>                     IPython-dev at python.org
>>                     https://mail.python.org/mailman/listinfo/ipython-dev
>>                     <https://mail.python.org/mailman/listinfo/ipython-dev>
>>
>>                 _______________________________________________
>>                 IPython-dev mailing list
>>                 IPython-dev at python.org
>>                 https://mail.python.org/mailman/listinfo/ipython-dev
>>                 <https://mail.python.org/mailman/listinfo/ipython-dev>
>>
>>
>>             _______________________________________________
>>             IPython-dev mailing list
>>             IPython-dev at python.org
>>             https://mail.python.org/mailman/listinfo/ipython-dev
>>             <https://mail.python.org/mailman/listinfo/ipython-dev>
>>
>>
>>     _______________________________________________
>>     IPython-dev mailing list
>>     IPython-dev at python.org <mailto:IPython-dev at python.org>
>>     https://mail.python.org/mailman/listinfo/ipython-dev
>>     <https://mail.python.org/mailman/listinfo/ipython-dev>
>
>     _______________________________________________
>     IPython-dev mailing list
>     IPython-dev at python.org <mailto:IPython-dev at python.org>
>     https://mail.python.org/mailman/listinfo/ipython-dev
>     <https://mail.python.org/mailman/listinfo/ipython-dev>
>
>
>
>
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at python.org
> https://mail.python.org/mailman/listinfo/ipython-dev

-- 
The world is full of interesting problems to be solved!

Home page: http://terna.to.it

Have a look to:
http://web-prod.santafe.edu/news-center/news/dangers-simplicity-complex-world

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20170804/438ca771/attachment-0001.html>


More information about the IPython-dev mailing list