Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 翻转数组并每隔一行反转一次_Python_Matrix - Fatal编程技术网

Python 翻转数组并每隔一行反转一次

Python 翻转数组并每隔一行反转一次,python,matrix,Python,Matrix,基本上,我有一个python“示例”中的矩阵(尽管要大得多)。我需要用一些python代码生成数组“example_what_I_want”。我想for循环是正常的,但我该怎么做呢 example= [1,2,3,4,5], [6,7,8,9,10], [11,12,13,14,15], [16,17,18,19,20], [21,22,23,24,25] example_what_I_want = [25,24,23,22,21], [16,17,18,19,20], [15,14,13

基本上,我有一个python“示例”中的矩阵(尽管要大得多)。我需要用一些python代码生成数组“example_what_I_want”。我想for循环是正常的,但我该怎么做呢

example= 
[1,2,3,4,5],
[6,7,8,9,10],
[11,12,13,14,15],
[16,17,18,19,20],
[21,22,23,24,25]

example_what_I_want = 
[25,24,23,22,21],
[16,17,18,19,20],
[15,14,13,12,11],
[6,7,8,9,10],
[5,4,3,2,1]
所以它以蛇形的方式增加。第一行必须颠倒!然后遵循这个模式


谢谢

我假设
示例
实际上是:

example = [[1,2,3,4,5],
           [6,7,8,9,10],
           [11,12,13,14,15],
           [16,17,18,19,20],
           [21,22,23,24,25]]
在这种情况下,您可以:

swapped_example = [sublst if idx%2 else sublst[::-1] for
                   idx,sublst in enumerate(example)][::-1]
这将给你:

In [5]: swapped_example
Out[5]: 
[[25, 24, 23, 22, 21],
 [16, 17, 18, 19, 20],
 [15, 14, 13, 12, 11],
 [6, 7, 8, 9, 10],
 [5, 4, 3, 2, 1]]

我假设
示例
实际上是:

example = [[1,2,3,4,5],
           [6,7,8,9,10],
           [11,12,13,14,15],
           [16,17,18,19,20],
           [21,22,23,24,25]]
在这种情况下,您可以:

swapped_example = [sublst if idx%2 else sublst[::-1] for
                   idx,sublst in enumerate(example)][::-1]
这将给你:

In [5]: swapped_example
Out[5]: 
[[25, 24, 23, 22, 21],
 [16, 17, 18, 19, 20],
 [15, 14, 13, 12, 11],
 [6, 7, 8, 9, 10],
 [5, 4, 3, 2, 1]]
或者,你可以使用iter

a = [[1,2,3,4,5],
[6,7,8,9,10],
[11,12,13,14,15],
[16,17,18,19,20],
[21,22,23,24,25]]

b = []

rev_a = iter(a[::-1])

while rev_a:
    try:
        b.append(rev_a.next()[::-1])
        b.append(rev_a.next())
    except StopIteration:
        break

print b
修改(之前不知道。@Adam)

或者,你可以使用iter

a = [[1,2,3,4,5],
[6,7,8,9,10],
[11,12,13,14,15],
[16,17,18,19,20],
[21,22,23,24,25]]

b = []

rev_a = iter(a[::-1])

while rev_a:
    try:
        b.append(rev_a.next()[::-1])
        b.append(rev_a.next())
    except StopIteration:
        break

print b
修改(之前不知道。@Adam)


您的
示例
数组实际上是列表列表吗?请尝试编辑,以便您的示例代码在控制台中运行时实际创建一个适当的Python对象,您已经完成了大部分工作。您的
示例
数组实际上是列表列表吗?请尝试编辑,以便您的示例代码在控制台中运行时实际创建一个适当的Python对象,您已经做到了这一点。这是正确的想法,但我怀疑您可能希望在外层而不是内层反转。例如,尝试使用矩阵中偶数行的当前代码。这是正确的想法,但我怀疑您可能希望在外层而不是内层反转。例如,在矩阵中使用偶数行尝试当前代码。