python中列表列表的输出不正确

时间:2013-07-10 15:32:51

标签: python list

def myLists(L):
    final_list=[] 
    sub_list=[]
    for each in L:       
        sub_list[:]=[]
        for num in range(each+1):            
            sub_list.append(num)
        #remove 0 from the list
        sub_list=sub_list[1:]    

        final_list.append(sub_list)        
    return final_list    

L=[1,2,4,5,7]
nl= myLists(L)
print nl

预期产出为:

[[1], [1, 2], [1, 2, 3], [1, 2, 3, 4], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5, 6, 7]]

我得到如下输出,不明白为什么在子列表中添加“0”:

[[0, 1, 2], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4, 5], [0, 1, 2, 3, 4, 5, 6, 7], [1, 2, 3, 4, 5, 6, 7]]

1 个答案:

答案 0 :(得分:1)

如果你替换它:

#remove 0 from the list
sub_list=sub_list[1:]    

final_list.append(sub_list)

用这个:

final_list.append(sub_list[1:])     

你得到了你想要的output