Быстрая проверка понимания списка Python - PullRequest
0 голосов
/ 08 ноября 2011

В настоящее время я генерирую списки, используя следующее выражение (T и no_jobs - целые числа):

for i in xrange(no_jobs):
    row = row + T * [i]

Первое, что я придумал для преобразования его в оператор понимания списка:

[T*[i] for i in xrange(no_jobs)]

Но это, очевидно, создает вложенный список, который не то, что я ищу.Все мои другие идеи кажутся немного неуклюжими, поэтому, если у кого-то есть утонченный и элегантный способ создания списков такого типа, я был бы благодарен.

Ответы [ 2 ]

6 голосов
/ 08 ноября 2011

Вложенные циклы.

[i for i in xrange(no_jobs) for x in xrange(T)]
0 голосов
/ 08 ноября 2011

Но это, очевидно, создает вложенный список, который не то, что я ищу.

Так что просто сгладьте результат. Добавление списков - это объединение, поэтому мы можем объединить все списки, суммируя их (с пустым списком в качестве «накопителя»).

sum((T*[i] for i in xrange(no_jobs)), [])
...