按特定顺序打印列表
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)))
我有一个程序可以生成 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)))