【问题标题】:How to flip the rows of a list horizontally using slicing operator in python?如何使用python中的切片运算符水平翻转列表的行?
【发布时间】:2019-07-10 21:43:12
【问题描述】:
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'))

预期输出:[[2,1],[4,3]]

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

【问题讨论】:

  • 您希望myl 翻转后的样子?
  • 预期输出:[[2,1],[4,3]]

标签: python-3.x list matrix 2d slice


【解决方案1】:

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

result = [x[::-1] for x in myl]

【讨论】:

  • 但是为什么呢?从逻辑上讲,看起来 OP 的代码应该可以工作。
猜你喜欢
  • 2023-03-25
  • 2017-03-04
  • 1970-01-01
  • 2015-02-19
  • 2014-05-16
  • 2017-07-26
  • 2014-09-17
  • 2018-07-07
  • 2022-08-20
相关资源
最近更新 更多