[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