Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert this for loop in list comprehension?

Tags:

python

list

I have a for loop like this:

for i in conversion:
    for f in glob.glob(i):
        print(os.path.getsize(f))

I want to convert this into list comprehension:

Tried this:

[os.path.getsize(f) for f in glob.glob(i) for i in conversion]

but didn't work.

like image 230
pynovice Avatar asked Mar 01 '13 04:03

pynovice


1 Answers

The order of the for loops in a double list comprehension is the same order that you would use with nested loops:

[os.path.getsize(f) for i in conversion for f in glob.glob(i)]

It's a bit confusing because you expect the inner loop to be more "inner", but once you realize it is the same order as the nested loop, everything is easy :)

like image 185
nneonneo Avatar answered Oct 08 '22 08:10

nneonneo