按特定顺序打印列表

时间:2015-11-19 01:14:46

标签: sorting python-3.x nested-lists

我有一个程序可以生成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]))

问题是,这似乎根本没有以有序的方式打印出来,所以我不知道我哪里出错了。

1 个答案:

答案 0 :(得分:1)

sorted()会返回一个您未捕获的新列表。您需要slist = sorted(...)oldlist.sort(...)。后一种情况到位。

要根据需要排序,请使用:

thelist.sort(key=lambda x:list(reversed(x)))