Is an intermediate list necessary in a multi-level list comprehension

Viewed 99

Here is a specific example:

my_dict={k:int(encoded_value) 
         for (k,encoded_value) in 
             [encoded_key_value.split('=') for encoded_key_value in 
              many_encoded_key_values.split(',')]}

The question is about the internal list [], can it be avoided, e.g.:

# This will not parse
my_dict={k:int(encoded_value) 
         for (k,encoded_value) in 
             encoded_key_value.split('=') for encoded_key_value in 
             many_encoded_key_values.split(',')}

..., which is invalid syntax:

NameError: name 'encoded_key_value' is not defined

Sample data: aa=1,bb=2,cc=3,dd=4,ee=-5

4 Answers
Related