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

Print a nested list line by line in reverse order using list comprehension and for loop - 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 ways"看来真的很简单, 谢谢!

方法 1

我们可以使用列表理解、切片和 .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

方法 2

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

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

print() 默认情况下在末尾打印换行符,除非您使用:print(end="") 或者如果您使用 Python 2.x print t,会工作。

输出:

3 2 1
6 5 4
10 9 8 7

[::-1] 切片反转 for 循环中的列表(但实际上不会修改您的列表 "permanently"):

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

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

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

如其他答案中所述,将 ::-1 传递给嵌套列表会反转 for 循环中的顺序。