pynovice
pynovice

Reputation: 7752

How to convert this for loop in list comprehension?

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.

Upvotes: 8

Views: 7639

Answers (1)

nneonneo
nneonneo

Reputation: 179462

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 :)

Upvotes: 18

Related Questions