This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author johnlinp
Recipients johnlinp
Date 2019-06-01.04:07:00
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1559362021.42.0.783299654915.issue37119@roundup.psfhosted.org>
In-reply-to
Content
When I create 2 different dicts with the same literal, their dict.values() are equal in python2 but not equal in python3.

Here is an example in python2:

    $ python2
    Python 2.7.16 (default, Mar  4 2019, 09:02:22)
    [GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.11.45.5)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> a = {'hello': 'world'}
    >>> b = {'hello': 'world'}
    >>> a.values() == b.values()
    True
    >>> a.keys() == b.keys()
    True

However, the dict.values() are not equal in python3:

    $ python3
    Python 3.7.2 (default, Feb 12 2019, 08:16:38)
    [Clang 10.0.0 (clang-1000.11.45.5)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> a = {'hello': 'world'}
    >>> b = {'hello': 'world'}
    >>> a.values() == b.values()
    False
    >>> a.keys() == b.keys()
    True

Is this a bug? Or is this behavior specified somewhere in the documentation? Thanks.

Note: it's inspired by this StackOverflow question: https://stackoverflow.com/questions/56403613/questions-about-python-dictionary-equality
History
Date User Action Args
2019-06-01 04:07:01johnlinpsetrecipients: + johnlinp
2019-06-01 04:07:01johnlinpsetmessageid: <1559362021.42.0.783299654915.issue37119@roundup.psfhosted.org>
2019-06-01 04:07:01johnlinplinkissue37119 messages
2019-06-01 04:07:00johnlinpcreate