2013-03-01 81 views
4

我有一个像这样的循环:如何将这个循环转换为列表理解?

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

我想这个转换成列表解析:

尝试这样做:

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

,但没有奏效。

回答

9

在双列表理解的for循环的顺序是相同顺序,你会与嵌套循环使用:

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

,因为你期望的内环更这是一个有点混乱“内在“,但是一旦你意识到它与嵌套循环的顺序相同,一切都很简单:)