例如 - 左移:
例如,这是字母的网格
tiwxz
shshq
avidy
bsvsc
这就是我想要的效果。 X 符号填充移动产生的空间。
XXXtiwxz # no shift
XXshshqX # one shift left
XavidyXX # two shift left
bsvscXXX # three shift left
- 字母网格将是一个列表,其中每一行都是一个项目
- 我不知道这个列表要多长时间
- 解决方案应该是纯 python
如何为 grid 进行左移和右移?
这就是我的全部:
def diags(grid, rev=False):
n = len(grid)
_grid = [list(row) + [None]*(n-1) for row in grid]
请您参考如下方法:
您可以根据行的索引用 X(或 None)填充左侧和右侧,您可以通过 enumerate 获得该索引。 :
grid = [list(s) for s in 'tiwxz shshq avidy bsvsc'.split()]
new_grid = [(['X'] * (len(grid) - 1) + lst)[i:] + ['X'] * i for i, lst in enumerate(grid)]
输出
for l in new_grid:
print(l)
# ['X', 'X', 'X', 't', 'i', 'w', 'x', 'z']
# ['X', 'X', 's', 'h', 's', 'h', 'q', 'X']
# ['X', 'a', 'v', 'i', 'd', 'y', 'X', 'X']
# ['b', 's', 'v', 's', 'c', 'X', 'X', 'X']
