2012-05-15 3 views
5

Как я могу написать следующий код более кратко?Pythonic и лаконичный способ построения этого списка?

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

Я знаю, что это может быть записано в одну или две строки без использования append, но я Python новичку.

+4

'забивает = [read_score (е, Нормализация = True) для F в glob.glob (путь)]' - это список понимание, что делает точно такая же модель. – birryree

+0

Это классический сценарий использования для [list comprehensions] (http://docs.python.org/tutorial/datastructures.html#list-comprehensions). –

+0

Быстрый вопрос о последующих действиях: Что делать, если я хочу сортировать список файлов, которые повторяются в glob? Он не возвращает непосредственно список, но повторяется, поэтому вызов glob.glob (path) .sort() дает ошибку. Можно ли это сделать в одной строке? – Frank

ответ

7

О, я получил его во время просмотра related question:

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

use: 'sorted (glob.glob (path))' – fraxel

Смежные вопросы