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 ksqsf
Recipients ksqsf
Date 2017-08-06.13:17:16
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1502025436.65.0.0753322940142.issue31126@psf.upfronthosting.co.za>
In-reply-to
Content
The code
    key = ["a", "b"]
    val = [1, 2]
    dic = {key:val for key in key for val in val}
will raise UnboundLocalError in Python 3.6.2 and 2.7.13.

Intuitively, the element 'key' and the list 'key' are not the same, so generally the expected result is {"a": 1, "b": 2}.

There are similar cases for listcomps, setcomps and genexprs:
    l = [1, 2, 3]
    {l for l in l}   # => {1, 2, 3}
    [l for l in l]   # => [1, 2, 3]
    for l in (l for l in l):
        print(l, end=' ')
                     # => 1 2 3 
All of them do as what is expected. 

For consistency and intuitiveness, the behavior of distcomps should be modified so that no UnboundLocalError is raised.
History
Date User Action Args
2017-08-06 13:17:16ksqsfsetrecipients: + ksqsf
2017-08-06 13:17:16ksqsfsetmessageid: <1502025436.65.0.0753322940142.issue31126@psf.upfronthosting.co.za>
2017-08-06 13:17:16ksqsflinkissue31126 messages
2017-08-06 13:17:16ksqsfcreate