Python 3.x 如何在python中使用切片操作符水平翻转列表的行? 预期产出:[[2,1],[4,3]]

Python 3.x 如何在python中使用切片操作符水平翻转列表的行? 预期产出:[[2,1],[4,3]],python-3.x,list,matrix,2d,slice,Python 3.x,List,Matrix,2d,Slice,在上面的代码中,我调用matrixflip()函数来翻转列表行/通过将第二个参数传递为“h”来水平翻转2d矩阵。然而,我仍然得到垂直翻转的版本 您需要反转每个子列表。最简单的方法可能是使用列表理解表达式: def matrixflip(myl,c): if(c=='v'): myl=myl[::-1] return myl elif(c=='h'): myl=myl[::][::-1] return myl else:

在上面的代码中,我调用matrixflip()函数来翻转列表行/通过将第二个参数传递为“h”来水平翻转2d矩阵。然而,我仍然得到垂直翻转的版本

您需要反转每个子列表。最简单的方法可能是使用列表理解表达式:

def matrixflip(myl,c):
   if(c=='v'):
       myl=myl[::-1]
       return myl
   elif(c=='h'):
       myl=myl[::][::-1]
       return myl
   else:
       return myl

myl=[[1, 2], [3, 4]]
print(matrixflip(myl,'h'))

你希望myl翻转后会是什么样子?预期输出:[[2,1],[4,3]]但为什么?从逻辑上讲,OP的代码应该可以工作。
result = [x[::-1] for x in myl]