2013-12-11 42 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太之后。