Message299799
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. |
|
Date |
User |
Action |
Args |
2017-08-06 13:17:16 | ksqsf | set | recipients:
+ ksqsf |
2017-08-06 13:17:16 | ksqsf | set | messageid: <1502025436.65.0.0753322940142.issue31126@psf.upfronthosting.co.za> |
2017-08-06 13:17:16 | ksqsf | link | issue31126 messages |
2017-08-06 13:17:16 | ksqsf | create | |
|