我试图建立一个基本的游戏程序,我需要重新排列一个给定的矩阵,但垂直。在这种情况下,我只有0和1。0是较轻的物体,1是较重的物体。当函数运行时,所有的1应该垂直下降,0也垂直上升。它需要有准确的0和1的数量作为原始矩阵。例如:- 如果我给予下面的矩阵:
[1,0,1,1,0,1,0],
[0,0,0,1,0,0,0],
[1,0,1,1,1,1,1],
[0,1,1,0,1,1,0],
[1,1,0,1,0,0,1]
它应重新安排它以:
[0,0,0,0,0,0,0],
[0,0,0,1,0,0,0],
[1,0,1,1,0,1,0],
[1,1,1,1,1,1,1],
[1,1,1,1,1,1,1]
如有任何帮助或建议,我们将不胜感激。
3条答案
按热度按时间mec1mxoz1#
虽然不如numpy方法那样易读,但如果您想使用列表方法,可以
1.使用
zip(*matrix)
方法转置矩阵。1.对结果行(原始矩阵的列)进行排序
1.转回去。
您可以在一行中执行此操作:
oxcyiej72#
如果您不想使用numpy(尽管您应该使用),可以执行以下操作:
9njqaruj3#
考虑用numpy来表示矩阵,然后用
np.sort
来做你想做的事情: