使用列表理解和for循环Python以相反的顺序逐行打印嵌套列表


my_list =[[1, 2, 3], [4, 5, 6], [7, 8, 9, 10]]

我正在尽力打印表单的my_list

3 2 1
6 5 4
10 9 8 7

这是我的输出:

1 2 3
4 5 6
7 8 9 10

这在"python方式"中看起来非常简单,谢谢

MEHTOD 1

我们可以使用列表理解、Slices和.join()运算符。

my_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9, 10]]
for item in my_list:
print ' '.join(str(x) for x in item[::-1])

输出:

3 2 1
6 5 4
10 9 8 7

MEHTOD 2

我们可以使用嵌套for循环和Slices运算符。

for xs in my_list:
for x in xs[::-1]:
print x,
print

默认情况下,print()会在末尾打印新行字符,除非您使用:print(end="")或使用Python2.xprint t,即可。

输出:

3 2 1
6 5 4
10 9 8 7

我能想到的最简单的答案是:

for nested_list in my_list:
print([val for val in nested_list[::-1]])

如其他答案所示,将::-1传递到嵌套列表将颠倒for循环中的顺序。

[::-1]切片在for循环中反转列表(但实际上不会"永久"修改列表(:

def reverse_list(my_list):
new_list = []
for sub_list in my_list:
new_list.append(sub_list[::-1])
return new_list

test_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9, 10]];
reversed_lists = reverse_list(test_list)
for reversed_list in reversed_lists:
print reversed_list

最新更新