2014-05-14 52 views
0

我试图将项目添加到二维数组“组”。我收到错误。我知道为什么,但我不知道如何解决它。我尝试过[1] .add组,但它不起作用。阵列组[1]不存在,当我试图追加。有没有办法,只有在需要的时候才能创建这个数组(当试图追加或添加或插入时)?Python:追加到不存在的数组

def sortResults(results,pattern): 
    ordered=results 
    ordered.sort() 
    groups= [[]] 
    for r in results: 
     print r 
     tuple=evaluate(pattern,r) 
     print(tuple) 
     if tuple[0]==1: 
      groups[0].append(r) 
     elif tuple[0]==2: 
      groups[1].append(r) 
    for group in groups: 
     print(group) 
     for item in group: 
      if item != 0: 
       ordered.remove(item) 
       ordered.append(item) 


    return ordered 

我得到这个错误:

groups[1].append(r) 
IndexError: list index out of range 

提前感谢!

+1

为什么不使用'groups = [[],[]]'呢?在任何情况下,您总是可以使用异常处理或显式测试('len len(groups)<2:groups.append([])'')。 –

+0

@MartijnPieters谢谢!它帮助! – user3620512

回答

1

为什么不使用:

groups = [[], []] 

,而是如果你要追加到两组?那么你不会遇到这个问题。

,如果它仍然是空的您可以随时再次将其删除,或者您可以使用异常处理:

elif tuple[0]==2: 
    try: 
     groups[1].append(r) 
    except IndexError: 
     groups.append([r]) 

为列表中缺少仅仅是一个问题一次