例如-左移:
例如,这里有一个grid
个字母
tiwxz
shshq
avidy
bsvsc
这是我想要的效果。 X
符号填充机芯创建的空间。
XXXtiwxz # no shift
XXshshqX # one shift left
XavidyXX # two shift left
bsvscXXX # three shift left
如何为grid
左移和右移?
这就是我所拥有的:
def diags(grid, rev=False):
n = len(grid)
_grid = [list(row) + [None]*(n-1) for row in grid]
答案 0 :(得分:3)
您可以根据enumerate
所获得的行的索引,用X
(或None
)填充左侧和右侧:
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']
答案 1 :(得分:3)
此功能将完成工作。要确认背面空间,您可以打印字符串的长度。 input_grid是作为元素的行的列表。
def formater_fn(input_grid):
right_len = len(input_grid) + len(input_grid[0])
left_len = len(input_grid) + len(input_grid[0])
for item in input_grid:
right_item = item.rjust(right_len)
new_item = right_item.ljust(left_len)
right_len = right_len-1
print new_item