2013-12-11 4 views
-2

Учитывая список и некоторое целое число n, следующая функция Python должна возвращать список всех возможных подписок размера n. Например: учитывая [1, 2, 3] и n = 2, код должен генерировать [[1,2], [2,3]]. Следующий код без оператора if работает для всех значений, кроме случаев, когда n = 0.Сгенерировать подмножества

def Sublists (lst, n): 

    if n==0 
      return [ [] ] 
    else 
      return [lst [t:t+n] for t in range (0, len(lst) + 1 - n)] 

print Sublists ([1, 2, 3, 4], 3) 

Этот код однако генерирует ошибку:

if n==0 
    ^
SyntaxError: invalid syntax 
+1

Почему бы не '[1, 3]'? – mgilson

+0

Эта ошибка не имеет ничего общего с генерацией подмножеств. Это синтаксическая ошибка для оператора if. Название вводит в заблуждение и не поможет другим с подобными ошибками найти вопрос. – SethMMorton

ответ

1

Вы недостающую двоеточие:

if n==0: 

Вам нужно один за else тоже.

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