2015-11-19 90 views
0

打印列表我有一个生成4个数字,并将其添加到列表中的程序。每个列表的项目清单自身,寻找类似:以特定的顺序

[['+', 1, 1, 9, 9], ['+', 2, 1, 4, 4]] 
[['+', 2, 1, 10, 10], ['+', 3, 1, 5, 5]] 
[['+', 1, 1, 6, 6], ['+', 3, 1, 11, 11]] 
[['-', 1, 1, 9, 9], ['-', 2, 1, 4, 4]] 

我想打印出来,这样最后一个数字是按降序(如果它同最后一个数字,那么它使用第三个数字按降序排列)。

到目前为止我的代码是:

for i in self.result: 
     sorted(self.result, key=itemgetter(4), reverse = True) 
     print("{}{:d} {:>5d}..{:>5d} {:>5d}\n" .format(i[0],i[1],i[2],i[3],i[4])) 

的问题是,这似乎并不在一个有序的方式来打印他们所有,所以我不知道我要去的地方错了。

+0

你似乎在顶部有** 4名**名单?这是你的意图吗? –

回答

1

sorted()返回一个新的列表,你不捕捉。您需要slist = sorted(...)oldlist.sort(...)。后一种情况分类。

排序,只要你想,用这个:

​​
+0

谢谢!因此,我可以设置一个排序规则(对于我来说,使用第4位数字)。我怎样才能添加另一条规则,如果有2个相同的第4位数字,那么第3位数字越大的第一个呢? – lamazibiji

+0

@lamazibiji:它已经这样做了。它按整个内部列表进行排序,但其项目相反。 –