2012-05-15 71 views
5

如何更簡潔地編寫下面的代碼?pythonic和簡潔的方式來構建此列表?

scores = [] 
    for f in glob.glob(path): 
     score = read_score(f, Normalize = True) 
     scores.append(score) 

我知道這可以在一個或兩行寫不使用append,但我是一個Python新手。

+4

'成績= [read_score(F,規範化= TRUE)在glob.glob F(路徑)]' - 這是一個列表理解,做完全一樣的模型。 – birryree

+0

這是[list comprehensions](http://docs.python.org/tutorial/datastructures.html#list-comprehensions)的經典使用場景。 –

+0

快速後續問題:如果我想對循環遍歷的文件列表進行排序會怎樣?它不直接返回一個列表,而是一個迭代,所以調用glob.glob(path).sort()會給出一個錯誤。它仍然可以在一條線上完成嗎? – Frank

回答

7

哦,我知道了,而瀏覽related question

scores = [read_score(f, normalize=True) for f in glob.glob(path)] 
+1

使用:'sorted(glob.glob(path))' – fraxel

相關問題