2016-04-03 53 views
-1

我得到一个错误的输出[[1, 3, 2, 0, 0], [3, 2, 0, 0], [2, 0, 0], [0, 0], [0]]如何从列表中打印?

任何人都可以修复它,我卡在这里?

if __name__=="__main__": 
    row = [[4, 6, 5, 3, 3], [2, 4, 3, 1, 1], [4, 6, 5, 3, 3], [3, 5, 4, 2, 2], [1, 3, 2, 0, 0], [1, 3, 2, 0, 0]] 
    for x in row: 
     diff2 = [(x[z:]) for z in range(len(row)-1)] 
    print(diff2) 

输出

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

在什么顺序?请更具描述性。 – idjaw

+0

第一个列表中删除无,第二个列表删除第二个列表中的第一个元素,第三个列表删除第三个列表中的第一个和第二个元素,第四个列表删除第四个列表中的第一个,第二个和第三个元素 – Joe

+1

Joe,不要假设我们知道,你想达到什么。解释预期的结果。 –

回答

3

如果我明白你想要什么:

>>> print([r[i:] for i, r in enumerate(row)]) 
[[4, 6, 5, 3, 3], [4, 3, 1, 1], [5, 3, 3], [2, 2], [0], []] 

,或者如果你不希望最后一个列表

>>> print([r[i:] for i, r in enumerate(row[:-1])]) 
[[4, 6, 5, 3, 3], [4, 3, 1, 1], [5, 3, 3], [2, 2], [0]] 

如果你想为切碎清单排序的实际要素:

>>> print([sorted(r[i:]) for i, r in enumerate(row[:-1])]) 
[[3, 3, 4, 5, 6], [1, 1, 3, 4], [3, 3, 5], [2, 2], [0]] 

排序排序:

>>> print(sorted([sorted(r[i:]) for i, r in enumerate(row[:-1])])) 
[[0], [1, 1, 3, 4], [2, 2], [3, 3, 4, 5, 6], [3, 3, 5]] 
+0

感谢它的工作,我不需要它排序,因为我正在实现一个算法,我需要索引 – Joe