按特定顺序打印列表

Printing a list in a specific order

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

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

sorted() returns 一个您没有捕获的新列表。您想要 slist = sorted(...)oldlist.sort(...)。后一种情况就地排序。

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

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