Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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_Python 3.x_List_Recursion - Fatal编程技术网

如何在python中递归调用函数,将列表中的每个元素放到底部?

如何在python中递归调用函数,将列表中的每个元素放到底部?,python,python-3.x,list,recursion,Python,Python 3.x,List,Recursion,例如,如果我的原始嵌套列表是: [[' ', 'Y', ' ', 'X'], ['S', ' ', 'V', ' '], ['T', 'X', 'Y', 'S'], ['X', ' ', 'X', 'Y']] 我希望结果是: [[' ', ' ', ' ', ' '], ['S', ' ', 'V', 'X'], ['T', 'Y', 'Y', 'S'], ['X', 'X', 'X', 'Y']] 因此,基本上把所有字母都放在底部,而不去掉任何空格,保持列表的结构 这

例如,如果我的原始嵌套列表是:

[[' ', 'Y', ' ', 'X'], 
 ['S', ' ', 'V', ' '],
 ['T', 'X', 'Y', 'S'], 
 ['X', ' ', 'X', 'Y']]
我希望结果是:

[[' ', ' ', ' ', ' '], 
 ['S', ' ', 'V', 'X'], 
 ['T', 'Y', 'Y', 'S'], 
 ['X', 'X', 'X', 'Y']]
因此,基本上把所有字母都放在底部,而不去掉任何空格,保持列表的结构

这是我到目前为止所拥有的。 我的结果告诉我这是不正确的

[[' ', ' ', ' ', ' '],
 ['S', 'Y', 'V', 'X'],
 ['T', ' ', 'Y', 'S'],
 ['X', 'X', 'X', 'Y']]
你可以试试这个

您需要将每列中的“全部”向上推,并将所有其他字符向下放置以保持顺序。您可以在这里使用排序


要对可与函数一起使用的列进行更简单的操作,请执行以下操作:

m = np.array([[' ', 'Y', ' ', 'X'], 
 ['S', ' ', 'V', ' '],
 ['T', 'X', 'Y', 'S'], 
 ['X', ' ', 'X', 'Y']])

np.apply_along_axis(lambda c: [' '] *  list(c).count(' ') + [e for e in c if e != ' '],0 ,m)
np.apply_along_axis(lambda c: [' '] *  list(c).count(' ') + [e for e in c if e != ' '],0 ,m).tolist()
输出:

array([[' ', ' ', ' ', ' '],
       ['S', ' ', 'V', 'X'],
       ['T', 'Y', 'Y', 'S'],
       ['X', 'X', 'X', 'Y']], dtype='<U1')
[[' ', ' ', ' ', ' '],
 ['S', ' ', 'V', 'X'],
 ['T', 'Y', 'Y', 'S'],
 ['X', 'X', 'X', 'Y']]
输出:

array([[' ', ' ', ' ', ' '],
       ['S', ' ', 'V', 'X'],
       ['T', 'Y', 'Y', 'S'],
       ['X', 'X', 'X', 'Y']], dtype='<U1')
[[' ', ' ', ' ', ' '],
 ['S', ' ', 'V', 'X'],
 ['T', 'Y', 'Y', 'S'],
 ['X', 'X', 'X', 'Y']]