【问题标题】:Print a nested list line by line in reverse order using list comprehension and for loop - Python使用列表理解和for循环以相反的顺序逐行打印嵌套列表 - Python
【发布时间】:2018-07-28 04:26:41
【问题描述】:
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 方式”看起来很简单, 谢谢!

【问题讨论】:

标签: python python-2.7 for-loop printing nested-lists


【解决方案1】:

MEHTOD 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

MEHTOD 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

【讨论】:

  • 当这些方法都不能在 Python 3 中运行时,为什么这个问题会被标记为 Python 3.x?
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

    [::-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
    

    【讨论】:

      猜你喜欢
      • 2015-08-11
      • 2020-02-28
      • 2011-04-07
      • 1970-01-01
      • 1970-01-01
      • 2015-08-12
      • 2014-11-18
      • 2011-11-09
      相关资源
      最近更新 更多