2013-12-11 44 views
-2

給定一個列表和一些整數n,以下Python函數應返回所有可能的大小爲n的子列表的列表。例如:給定[1,2,3]和n = 2,代碼應該生成[[1,2],[2,3]]。除了當n = 0時,以下不含if語句的代碼適用於所有值。生成子集

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太之後。