【发布时间】:2021-12-25 20:59:47
【问题描述】:
所以我试图将列表board 中的每个“1”移动到列表的底部。这就是我的意思,
如果我在此输入,
board = [[" "," ","1"," "],
[" "," ","1"," "],
["1","1"," "," "],
["1"," "," ","1"]]
我的输出应该返回
[[" "," "," "," "],
[" "," "," "," "],
["1"," ","1"," "],
["1","1","1","1"]]
如果你不明白,我基本上必须将列表中的每个“1”移动到 python 中板的最低列表。
这是我目前所拥有的,
board = [[" "," ","1"," "],
[" "," ","1"," "],
["1","1"," "," "],
["1"," "," ","1"]]
def summ(board: [list[str]]):
j = []
for x in board:
for i in x:
j.append(i.count('1'))
return sum(j)
def remove(board):
r = []
for x in board:
for i in x:
r.append(i.removesuffix('1'))
return r
def new(board):
s = list('1'* summ(board))
return [remove(board) + s]
print(new(board))
我得到的输出是这样的
[[' ', ' ', '', ' ', ' ', ' ', '', ' ', '', '', ' ', ' ', '', ' ', ' ', '', '1', '1', '1', '1', '1', '1']]
我应该改变什么??
【问题讨论】:
-
list(zip(*(sorted(column) for column in zip(*board))))